分为两个文件,采用原始php简单粗暴的说明用法

shenshu.php 接收2个GET参数orderid,account。后面的类会根据此参数创建目录

申诉

申诉

文件名:

upload_shenshu.php

header("Content-type: text/html; charset=utf-8");

$orderid=$_POST['orderid'];

$account=$_POST['account'];

$path = dirname(__DIR__)."/upload/shenshu/$account/$orderid/";

if (!is_dir($path)){

mkdir ($path,0777,true);

}

//文件后缀

$houzui = pathinfo($_FILES['upfile']['name']);

//文件名

$filename = $account.'_'.$orderid.'.'.$houzui['extension'];

$imgurl = "http://xxxxxx.com/upload/shenshu/$account/$orderid/".$filename;

$FILE_SAVE_PATH = '../upload/shenshu/'.$account.'/'.$orderid.'/'.$filename;

if(move_uploaded_file($_FILES['upfile']['tmp_name'],$FILE_SAVE_PATH)){

$image = new Image($FILE_SAVE_PATH);

$image->percent = 0.2;

$image->openImage();

$image->thumpImage();

$image->showImage();

unlink($FILE_SAVE_PATH);

$image->saveImage($FILE_SAVE_PATH);

echo '

上传成功

'."
";

echo "

您的账号为$account

";

echo "";

}

class Image{

private $src;

private $imageinfo;

private $image;

public  $percent = 0.1;

public function __construct($src){

$this->src = $src;

}

/**

打开图片

*/

public function openImage(){

list($width, $height, $type, $attr) = getimagesize($this->src);

$this->imageinfo = array(

'width'=>$width,

'height'=>$height,

'type'=>image_type_to_extension($type,false),

'attr'=>$attr

);

$fun = "imagecreatefrom".$this->imageinfo['type'];

$this->image = $fun($this->src);

}

/**

操作图片

*/

public function thumpImage(){

$new_width = $this->imageinfo['width'] * $this->percent;

$new_height = $this->imageinfo['height'] * $this->percent;

$image_thump = imagecreatetruecolor($new_width,$new_height);

//将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度

imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']);

imagedestroy($this->image);

$this->image =    $image_thump;

}

/**

输出图片

*/

public function showImage(){

header('Content-Type: image/'.$this->imageinfo['type']);

$funcs = "image".$this->imageinfo['type'];

$funcs($this->image);

}

/**

保存图片到硬盘

*/

public function saveImage($name){

$funcs = "image".$this->imageinfo['type'];

$funcs($this->image,$name.'.'.$this->imageinfo['type']);

}

/**

销毁图片

*/

public function __destruct(){

imagedestroy($this->image);

}

}

php图片等比例压缩,php实现图片上传并等比例压缩相关推荐

  1. android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  2. html图片上传布局,上传图片(压缩图片再上传),布局参考以前的文章(https://www.jianshu.com/p/d379ab1b3eec)...

    引入一个js: 百度网盘链接:https://pan.baidu.com/s/1KO9gH4r6bP-foYVAQn5AxQ 提取码:mgcm 复制这段内容后打开百度网盘手机App,操作更方便哦 ht ...

  3. js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传

    js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 图片上传目录 js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 html代码 js代码 html代码 <input type ...

  4. 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

    现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...

  5. 小程序图片裁剪插件image-cropper实现个人头像上传裁剪功能

    小程序图片裁剪插件image-cropper实现个人头像上传裁剪功能 参考文档:小程序图片裁剪插件 image-cropper 整体效果流程图 一.第一步引入image-cropper,放在dist文 ...

  6. Android 拍照以及相册中选择(适配高版本)————上传多张照片之压缩处理、在线预览可伸缩放大(二)

    ______ Introduction ______ 前言 上一篇文章刚给大家总结完,关于上传头像的功能.此文章所述 主要是关于上传头像的具体流程以及如何对照片做裁剪处理,回调给控件显示:当然重中之重 ...

  7. php将上传的文件自动压缩,如何在服务器端实现文件自动压缩和解压

    使用过虚拟主机时,有时需要备份或者更新过自己整个网站的内容.如果服务器支持压缩解压,那自然再好不过--备份时在后台生成压缩包,直接下载;更新时上传一个打包的压缩文件,在线解压即可.可是很不幸,很多空间 ...

  8. 图片上传至服务器实现压缩

    2019独角兽企业重金招聘Python工程师标准>>> 1.缩略图压缩文件jar包 <!-- 图片缩略图 --><dependency><groupId ...

  9. 【Python黑科技】图片太大不能上传?三种压缩图片大小的方法(代码注释详细)

    目录 实现效果 原图大小8.46MB PIL库quality降低图片质量方式压缩图片366KB PIL库thumbnail压缩图片大小来压缩图片985KB OpenCV缩放图片大小来压缩图片 177K ...

最新文章

  1. python学习笔记目录
  2. mysql begin end 批量更新_MySql中4种批量更新的方法
  3. Windows 2003不同域之间迁移密码方法笔记截图
  4. linux动态二进制翻译,仿真:解释和二进制翻译
  5. html dvi如何设置置顶不能空白位置,[html]关于html标签的一些总结
  6. 精益分析体系构建如何“因企制宜”?
  7. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,一篇是王飞跃等人翻译的美国卡内基梅隆大学计算机科学系主任.PPT...
  8. python多线程编程(6): 队列同步
  9. 《需求工程》阅读笔记之三
  10. Google发转码工具 可将安卓程序转至iOS
  11. r语言中对向量求条件语句_R中的条件语句
  12. 虚拟机中运行windows内核
  13. 函数参数缺少const导致so无法加载
  14. LED背光源的使用寿命多久?
  15. DATAGUARD手记(DUPLICATE)(四)
  16. 小学计算机应用能力培训的计划,小学老师信息技术应用能力提升培训个人计划...
  17. io包下 文件类 字节流 字符流 缓冲流 转换流 序列化流 打印流
  18. 一键清除fla文件中的TLF文本
  19. 航空Ethernet嵌入式测试平台ETest
  20. ibm服务器密码破解_IBM Integration Bus中的密码术操作

热门文章

  1. Flash数据的采集方法-搜房房价走势采集
  2. [jvm]对象访问机制
  3. 在php中使用json
  4. 解决:XCODE 4.2 无法连接SVN,提示:Unable to load revisions
  5. petshop4.0数据库分析一:数据库概览
  6. “网工”可以跳越“网管”吗?
  7. JAVA 条件语句 跟PHP没有区别!!!!!
  8. Centos 修改默认网卡为eth0
  9. 定制属于自己的域名邮箱
  10. 64位内核第一讲,和32位内核的区别