首页 > 编程 > PHP > 正文

PHP实现图片上传并压缩

2020-03-22 16:32:41
字体:
来源:转载
供稿:网友
本文实例讲解了PHP图片上传并压缩的实现方法,分享给大家供大家参考,具体内容如下使用到三个文件 connect.php:连接数据库 test_upload.php:执行SQL语句 upload_img.php:上传图片并压缩

$small_img=$uploadfile_resize;$insert_sql = "insert into img (real_img,small_img) html' target='_blank'>values ( , $result = $sqlconn - prepare($insert_sql);$result - bind_param("ss", $real_img,$small_img);$result - execute();上传图片并压缩:upload_img.php
php //设置文件保存目录$uploaddir = "upfiles/"; //设置允许上传文件的类型$type=array("jpg","gif","bmp","jpeg","png"); //获取文件后缀名函数 function fileext($filename) return substr(strrchr($filename, '.'), 1); //生成随机文件名函数 function random($length) $hash = 'CR-'; $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; $max = strlen($chars) - 1; mt_srand((double)microtime() * 1000000); for($i = 0; $i $length; $i++) $hash .= $chars[mt_rand(0, $max)]; return $hash; $a=strtolower(fileext($_FILES['filename']['name'])); //判断文件类型 if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type)) $text=implode(",",$type); $ret_code=3;//文件类型错误 $page_result=$text; $retArray = array('ret_code' = $ret_code,'page_result'= $page_result); $retJson = json_encode($retArray); echo $retJson; return;//生成目标文件的文件名 $filename=explode(".",$_FILES['filename']['name']); $filename[0]=random(10); //设置随机数长度 $name=implode(".",$filename); //$name1=$name.".Mcncc"; $uploadfile=$uploaddir.$name; while(file_exists($uploadfile)); if (move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile)) if(is_uploaded_file($_FILES['filename']['tmp_name'])) $ret_code=1;//上传失败 else {//上传成功 $ret_code=0;$retArray = array('ret_code' = $ret_code);$retJson = json_encode($retArray);echo $retJson;//压缩图片$uploaddir_resize="upfiles_resize/";$uploadfile_resize=$uploaddir_resize.$name;//$pic_width_max=120;//$pic_height_max=90;//以上与下面段注释可以联合使用,可以使图片根据计算出来的比例压缩$file_type=$_FILES["filename"]['type'];function ResizeImage($uploadfile,$maxwidth,$maxheight,$name) //取得当前图片大小 $width = imagesx($uploadfile); $height = imagesy($uploadfile); $i=0.5; //生成缩略图的大小 if(($width $maxwidth) || ($height $maxheight)) $widthratio = $maxwidth/$width; $heightratio = $maxheight/$height; if($widthratio $heightratio) $ratio = $widthratio; else $ratio = $heightratio; $newwidth = $width * $ratio; $newheight = $height * $ratio; $newwidth = $width * $i; $newheight = $height * $i; if(function_exists("imagecopyresampled")) $uploaddir_resize = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); else $uploaddir_resize = imagecreate($newwidth, $newheight); imagecopyresized($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); ImageJpeg ($uploaddir_resize,$name); ImageDestroy ($uploaddir_resize); else ImageJpeg ($uploadfile,$name);
if($file_type == "image/pjpeg"||$file_type == "image/jpg"|$file_type == "image/jpeg") //$im = imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']); $im = imagecreatefromjpeg($uploadfile); elseif($file_type == "image/x-png") //$im = imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']); $im = imagecreatefromjpeg($uploadfile); elseif($file_type == "image/gif") //$im = imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']); $im = imagecreatefromjpeg($uploadfile); else//默认jpg $im = imagecreatefromjpeg($uploadfile); if($im) ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize); ImageDestroy ($im);
请按照现实情况更改connect.php,test_upload.php中对应的信息。以上就是PHP实现图片上传并压缩的方法,希望对大家的学习php程序设计有所帮助PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表