PHP支持多种格式图片上传(支持jpg、png、gif)_php技巧

PHP中文网
发布: 2016-05-17 09:14:47
原创
1420 人浏览过

此处一次支持上传2个图片,上传后生成原图和质量较差的图,原图用于保存质量高的图片,质量差的图用于网页显示。
PHP Code 

<?php 
include_once("db.php"); 
include_once("dbinfo.php"); 
$connector = new nmdb($host, $username, $password); 
$connector -> select_db($database); 
$work_group = check_input($_POST[&#39;work_group&#39;]); 
$name = check_input($_POST[&#39;name&#39;]); 
$tel = check_input($_POST[&#39;tel&#39;]); 
$id_card = check_input($_POST[&#39;id_card&#39;]); 
$work_name = check_input($_POST[&#39;work_name&#39;]); 
$place = check_input($_POST[&#39;place&#39;]); 
$work1 = check_input($_POST[&#39;work1&#39;]); 
date_default_timezone_set(&#39;PRC&#39;); 
$date = date("Y-m-d H:i:s"); 
$quality = 100; 
$quality2 = 70; 
$quality_png = 9; 
$quality2_png = 7; 
if(isset($_FILES[&#39;work1&#39;]) && $_FILES[&#39;work1&#39;][&#39;error&#39;]==0) 
{ 
$size = getimagesize($_FILES[&#39;work1&#39;][&#39;tmp_name&#39;]); 
$original = $_FILES[&#39;work1&#39;][&#39;tmp_name&#39;]; 
$type = $_FILES[&#39;work1&#39;][&#39;type&#39;]; 
//echo $type; 
$target_name = date(&#39;YmdHis&#39;).&#39;_&#39;.preg_replace(&#39;`[^a-z0-9-_.]`i&#39;,&#39;&#39;,$_FILES[&#39;work1&#39;][&#39;name&#39;]); 
$work1 = $target_name; 
$target = dirname(__FILE__).&#39;/uploads/&#39;.$target_name; 
switch($type) 
{ 
case "image/jpeg": 
$resultImage = imagecreatefromjpeg($original); 
imagejpeg($resultImage, $target, $quality); 
break; 
case "image/png": 
$resultImage = imagecreatefrompng($original); 
imagepng($resultImage, $target, $quality_png); 
break; 
case "image/gif": 
$resultImage = imagecreatefromgif($original); 
imagegif($resultImage, $target, $quality); 
break; 
default : 
die("不支持此文件类型"); 
exit; 
} 
$work1_small = $target_name; 
$target = dirname(__FILE__).&#39;/uploads/small/&#39;.$target_name; 
switch($type) 
{ 
case "image/jpeg": 
$resultImage = imagecreatefromjpeg($original); 
imagejpeg($resultImage, $target, $quality2); 
break; 
case "image/png": 
$resultImage = imagecreatefrompng($original); 
imagepng($resultImage, $target, $quality2_png); 
break; 
case "image/gif": 
$resultImage = imagecreatefromgif($original); 
imagegif($resultImage, $target, $quality2); 
break; 
default : 
die("不支持此文件类型"); 
exit; 
} 
} 
if(isset($_FILES[&#39;work2&#39;]) && $_FILES[&#39;work2&#39;][&#39;error&#39;]==0) 
{ 
$size = getimagesize($_FILES[&#39;work2&#39;][&#39;tmp_name&#39;]); 
$original = $_FILES[&#39;work2&#39;][&#39;tmp_name&#39;]; 
$type = $_FILES[&#39;work2&#39;][&#39;type&#39;]; 
$target_name = date(&#39;YmdHis&#39;).&#39;_&#39;.preg_replace(&#39;`[^a-z0-9-_.]`i&#39;,&#39;&#39;,$_FILES[&#39;work2&#39;][&#39;name&#39;]); 
$work2 = $target_name; 
$target = dirname(__FILE__).&#39;/uploads/&#39;.$target_name; 
switch($type) 
{ 
case "image/jpeg": 
$resultImage = imagecreatefromjpeg($original); 
imagejpeg($resultImage, $target, $quality); 
break; 
case "image/png": 
$resultImage = imagecreatefrompng($original); 
imagepng($resultImage, $target, $quality_png); 
break; 
case "image/gif": 
$resultImage = imagecreatefromgif($original); 
imagegif($resultImage, $target, $quality); 
break; 
default : 
die("不支持此文件类型"); 
exit; 
} 
$work2_small = $target_name; 
$target = dirname(__FILE__).&#39;/uploads/small/&#39;.$target_name; 
switch($type) 
{ 
case "image/jpeg": 
$resultImage = imagecreatefromjpeg($original); 
imagejpeg($resultImage, $target, $quality2); 
break; 
case "image/png": 
$resultImage = imagecreatefrompng($original); 
imagepng($resultImage, $target, $quality2_png); 
break; 
case "image/gif": 
$resultImage = imagecreatefromgif($original); 
imagegif($resultImage, $target, $quality2); 
break; 
default : 
die("不支持此文件类型"); 
exit; 
} 
} 
$sql="insert into photo(work_group,name,tel,id_card,work_name,place,work,work_small,date) 
values(&#39;$work_group&#39;,&#39;$name&#39;,&#39;$tel&#39;,&#39;$id_card&#39;,&#39;$work_name&#39;,&#39;$place&#39;,&#39;$work1&#39;,&#39;$work1_small&#39;,&#39;$date&#39;)"; 
//echo $sql; 
$result = $connector -> query($sql) or die(mysql_error()); 
if($work2 != "" && $work2_small != null) 
{ 
$sql2="insert into photo(work_group,name,tel,id_card,work_name,place,work,work_small,date) 
values(&#39;$work_group&#39;,&#39;$name&#39;,&#39;$tel&#39;,&#39;$id_card&#39;,&#39;$work_name&#39;,&#39;$place&#39;,&#39;$work2&#39;,&#39;$work2_small&#39;,&#39;$date&#39;)"; 
$result2 = $connector -> query($sql2) or die(mysql_error()); 
} 
$connector -> close($connector); 
$page="../upload.php"; 
echo "<script>alert(&#39;上传成功!&#39;); window.location = \"".$page."\";</script>"; 
?>
登录后复制


有些问题需要说明下: 
JPEG图像生成的图像的质量的是一个范围从0(最低质量,最小的文件大小)到100(最高质量,最大文件大小)。而ImagePNG生成图像的质量范围从0到9的,传入的这个范围以外的参数则该函数不会工作。 
判断上传文件的类型,$type = $_FILES['work1']['type'];。 
创建各种格式的图片可以使用这些函数:imagecreatefromjpeg()、imagecreatefrompng()、imagecreatefromgif()。


以上就是PHP支持多种格式图片上传(支持jpg、png、gif)_php技巧的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板