设为首页 收藏本站
查看: 474|回复: 0

[经验分享] PHP图片上传代码一例

[复制链接]

尚未签到

发表于 2017-3-27 07:10:58 | 显示全部楼层 |阅读模式
  分享一个php图片上传代码,如下:
 



  • <?php  
  • $uptypes=array('image/jpg'//上传文件类型列表  
  • 'image/jpeg',  
  • 'image/png',  
  • 'image/pjpeg',  
  • 'image/gif',  
  • 'image/bmp',  
  • 'application/x-shockwave-flash',  
  • 'image/x-png');   
  • $max_file_size=5000000; //上传文件大小限制, 单位BYTE  
  • $destination_folder="upload/"//上传文件路径  
  • $watermark=0; //是否附加水印(1为加水印,其他为不加水印);  
  • $watertype=1; //水印类型(1为文字,2为图片)  
  • $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);  
  • $waterstring="newphp.site.cz"//水印字符串  
  • $waterimg="xplore.gif"//水印图片  
  • $imgpreview=1; //是否生成预览图(1为生成,其他为不生成);  
  • $imgpreviewsize=1/2; //缩略图比例  
  • ?>  
  • <html>  
  • <head>  
  • <title>PHP图片上传 - www.jbxue.com</title>  
  • <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  • <style type="text/css">body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;}   
  • strong{font-size:12px;}  
  • a:link{color:#0066CC;}  
  • a:hover{color:#FF6600;}  
  • a:visited{color:#003366;}  
  • a:active{color:#9DCC00;}  
  • table.itable{}  
  • td.irows{height:20px;background:url("index.php?i=dots") repeat-x bottom}</style>  
  • </head>  
  • <body>  
  • <center><form enctype="multipart/form-data" method="post" name="upform">  
  • 上传文件: <br><br><br>  
  • <input name="upfile" type="file" style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">  
  • <input type="submit" value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"><br><br><br>  
  • 允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf <br><br>  
  • <a href="index.php">返回</a>  
  • </form>  
  • <?php  
  • if ($_SERVER['REQUEST_METHOD'] == 'POST')  
  • {  
  • if (!is_uploaded_file($_FILES["upfile"][tmp_name]))  
  • //是否存在文件  
  • {   
  • echo "<font color='red'>文件不存在!</font>";  
  • exit;  
  • }  
  •   
  • $file = $_FILES["upfile"];  
  • if($max_file_size < $file["size"])  
  • //检查文件大小  
  • {  
  • echo "<font color='red'>文件太大!</font>";  
  • exit;  
  • }  
  •   
  • if(!in_array($file["type"], $uptypes))  
  • //检查文件类型  
  • // www.jbxue.com  
  • echo "<font color='red'>只能上传图像文件或Flash!</font>";  
  • exit;   
  • }  
  •   
  • if(!file_exists($destination_folder))  
  • mkdir($destination_folder);  
  •   
  • $filename=$file["tmp_name"];  
  • $image_size = getimagesize($filename);   
  • $pinfo=pathinfo($file["name"]);  
  • $ftype=$pinfo[extension];  
  • $destination = $destination_folder.time().".".$ftype;  
  • if (file_exists($destination) && $overwrite != true)  
  •   
  • {  
  • echo "<font color='red'>同名文件已经存在了!</a>";  
  • exit;  
  • }  
  •   
  • if(!move_uploaded_file ($filename$destination))  
  • {  
  • echo "<font color='red'>移动文件出错!</a>";  
  • exit;  
  • }  
  •   
  • $pinfo=pathinfo($destination);  
  • $fname=$pinfo[basename];  
  • echo " <font color=red>已经成功上传</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>";  
  • echo " 宽度:".$image_size[0];  
  • echo " 长度:".$image_size[1];  
  • if($watermark==1)  
  • {  
  • $iinfo=getimagesize($destination,$iinfo);  
  • $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);  
  • $white=imagecolorallocate($nimage,255,255,255);  
  • $black=imagecolorallocate($nimage,0,0,0);  
  • $red=imagecolorallocate($nimage,255,0,0);  
  • imagefill($nimage,0,0,$white);  
  •   
  • switch ($iinfo[2])  
  • {  
  • case 1:  
  • $simage =imagecreatefromgif($destination);  
  • break;  
  • case 2:  
  • $simage =imagecreatefromjpeg($destination);  
  • break;  
  • case 3:  
  • $simage =imagecreatefrompng($destination);  
  • break;  
  • case 6:  
  • $simage =imagecreatefromwbmp($destination);  
  • break;  
  • default:  
  • die("<font color='red'>不能上传此类型文件!</a>");  
  • exit;  
  • }  
  •   
  • imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);  
  • imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);  
  •   
  • switch($watertype)  
  • {  
  • case 1: //加水印字符串  
  • imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);  
  • break;  
  • case 2: //加水印图片  
  • $simage1 =imagecreatefromgif("xplore.gif");  
  • imagecopy($nimage,$simage1,0,0,0,0,85,15);  
  • imagedestroy($simage1);  
  • break;  
  • //编辑: www.jbxue.com  
  • switch ($iinfo[2])  
  • {  
  • case 1:  
  • //imagegif($nimage, $destination);  
  •   
  • imagejpeg($nimage$destination);  
  • break;  
  • case 2:  
  • imagejpeg($nimage$destination);  
  • break;  
  • case 3:  
  • imagepng($nimage$destination);  
  • break;  
  • case 6:  
  • imagewbmp($nimage$destination);  
  • //imagejpeg($nimage, $destination);  
  • break;  
  • }  
  •   
  • //覆盖原上传文件  
  • imagedestroy($nimage);  
  • imagedestroy($simage);  
  • }  
  •   
  • if($imgpreview==1)  
  • {  
  • echo "<br>图片预览:<br>";  
  • echo "<a href=/"".$destination."/" target='_blank'><img src=/"".$destination."/" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);  
  • echo " alt=/"图片预览:/r文件名:".$destination."/r上传时间:/" border='0'></a>";  
  • }  
  • }  
  • ?>  
  • </center>  
  • </body>  
  • </html>  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355792-1-1.html 上篇帖子: PHP type comparison tables 下篇帖子: PHP架构之注册表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表