php后台修改图片_PHP后台上传图片

这是一个PHP后台实现图片上传及压缩的功能。代码首先设置了时区,然后定义了一个Updateclass类,该类包含update方法用于处理文件上传,检查文件大小、类型、是否通过POST提交,并进行错误处理。如果文件上传成功,它将文件移动到指定目录,并根据需要进行图片压缩。压缩功能使用了p_w_picpath函数库,创建新的图像并调整大小。最后返回上传路径和压缩后的信息。
摘要由CSDN通过智能技术生成

/*

by 的雨

*/

date_default_timezone_set('Asia/Chongqing');

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

//这是上传图片的类

class Updateclass

{

public $pathall;

public $picname;

public function update($file,$kaiqi=false,$w=0,$H=0)

{

//return $file;die;

foreach($file as $key=>$val)

{

$updatename="{$key}";

}

$file=$file;

$name=$file[$updatename]['name']; //文件名称

$size=$file[$updatename]['size']; //文件大小

$type=$file[$updatename]['type']; //文件类型

$tmp_name=$file[$updatename]['tmp_name']; //文件临时文件

$error=$file[$updatename]['error']; //文件错误

if(($error))

{

switch($error)

{

case 1:

$s="超过了配置的大小";

break;

case 2:

$s="超过了表单的大小";

break;

case 3:

$s="部分文件上传";

break;

case 4:

$s="没有文件";

break;

case 6:

$s="找不到临时文件";

break;

case 7:

$s="文件不可写";

break;

case 8:

$s="由于扩展PHP程序中断文件上传";

break;

}

$re='上传的错误提示';

return $s.'>'.$re;

}

else

{

//判断是否是数组中的类型

$arr=array('p_w_picpath/jpeg','p_w_picpath/jpg','p_w_picpath/png','p_w_picpath/gif');

if(!in_array($type,$arr))

{

$re='上传的错误提示';

$s='上传的格式不对';

return $s.'>'.$re;

exit;

}

//判断是否是http post提交

if(!is_uploaded_file($tmp_name))

{

$re='上传的错误提示';

$s='此文件不是通过post提交';

return $s.'>'.$re;

exit;

}

else

{

//获取真实的名字,以时间为命名

$NAME=date('Ymd',time()).rand(0,999999999);

$hou=explode('.',$name);

$houzui=$hou[count($hou)-1];

$p=date('Ym');

$path='uploade/'.$p;

$this->pathall=$path;

$this->picname=$NAME.'.'.$houzui;

if(!is_dir($path))

{

mkdir($path,0777,true);

$path=$path.'/'.$NAME.'.'.$houzui;

if(move_uploaded_file($tmp_name,$path))

{

if($kaiqi==true)

{

$ys=$this->yasuo($path,$w,$H);

}

if($kaiqi==true)

{

return $path.'*'.$ys."@";

}

else

{

return $path.'*';

}

}

else

{

return "上传失败";

}

}

else

{

$path=$path.'/'.$NAME.'.'.$houzui;

if(move_uploaded_file($tmp_name,$path))

{

if($kaiqi==true)

{

$yasuo=$this->yasuo($path,$w,$H);

}

///echo "

";

if($kaiqi==true)

{

return $path.'*'.$ys."@";

}

else

{

return $path.'*';

}

}

else

{

return "上传失败";

}

}

}

}

}

public function yasuo($from,$W,$H){

$yasuo_path=$this->pathall.'/'.date('Ym');

if(!is_dir($yasuo_path))

{

mkdir($yasuo_path,0777,true);

}

$from="$from";

list($width,$height,$p_w_picpathstype)=getp_w_picpathsize($from);    //获得原来照片的宽,高,文件类型

$get_style=p_w_picpath_type_to_mime_type($p_w_picpathstype);          //这是获取图片类型 p_w_picpath/jpeg

//等同于 $get_style=getp_w_picpathsize($from)[mine];

$p_w_picpathcreatefrom=str_replace('/','createfrom',$get_style); //替换成 p_w_picpathcreatefromjpeg

$p_w_picpathjpeg=str_replace('/',null,$get_style);    //替换成 p_w_picpathjpeg

$yuanben_p_w_picpath=$p_w_picpathcreatefrom($from);  //p_w_picpathcreatefromjpeg()  由文件或 URL 创建一个新图象,原来的图片

$yasuo_p_w_picpath=p_w_picpathcreatetruecolor($W,$H);  //这是创建一个新的画布,存放目标图片

p_w_picpathcopyresampled($yasuo_p_w_picpath,$yuanben_p_w_picpath,0,0,0,0,$W,$H,$width,$height); //p_w_picpathcopyresampled 重采样拷贝部分图像并调整大小

//p_w_picpathcopyresampled(目标图象连接资源,源图象连接资源,目标 X 坐标点,目标 Y 坐标点,源的 X 坐标点,源的 Y 坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度);

//header('content-type: $get_style');   //头部输出图片的类型  header('Content-Type: p_w_picpath/jpeg');

$p_w_picpathjpeg($yasuo_p_w_picpath,"$yasuo_path/".'yasuo'.$this->picname); //网页中输出的图片类型,压缩图保存的位置

return "$yasuo_path/".'yasuo'.$this->picname;

p_w_picpathdestroy($yasuo_p_w_picpath);              //销毁压缩后的图片

p_w_picpathdestroy($yuanben_p_w_picpath);//销毁原来的图片

}

}

?>

PHP后台上传图片加压缩图片,个人是新手,若有错误,请多多包涵》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值