php多图片上传并压缩,php实现图片上传并等比例压缩

分为两个文件,采用原始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 "%24imgurl";

}

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);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值