php图片上传代码本来是一个很简单的事,之前笔者图省事,直接网上下载了一个php图片上传小程序,结果导致wordpress网站被黑,因为留有后门,后来排查直接删除整个小程序,自己用重新写了一个php图片上传功能,缺点就是只能单张上传!
简单说一些这个这段代码,
上传目录:文件当前文件夹;
图片文件夹:自动生成,格式为日期的年月,如:201801,201802;
图片是否压缩:否;
图片名称:以上传时间的linux时间戳命名;
图片支持类型:jpg,jpeg,png,pjpeg,gif,bmp,x-png;
图片大小:默认2M(可自行修改,但是超过系统php.ini设置无效);
php图片上传完整代码如下:
<?php $uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','image/x-png'); $addtime=date("Ym",time()); $testdir="./".$addtime."/"; if(file_exists($testdir)): else: mkdir($testdir,0777); endif; $max_file_size=2097152; //上传文件大小限制, 单位BYTE $destination_folder=$testdir; //上传文件路径 $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); $imgpreviewsize=1/2; //缩略图比例 ?> <form enctype="multipart/form-data" method="POST" name="upform"> 上传文件: <input name="upfile" type="file"> <input type="submit" value="上传"><br> 允许上传的文件类型为:<?=implode(',',$uptypes)?> </form> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!is_uploaded_file($_FILES["upfile"]["tmp_name"])) //是否存在文件 { echo "图片不存在!"; exit; } $file = $_FILES["upfile"]; if($max_file_size < $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["type"]; 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 "同名文件已经存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; 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]; echo "<br> 大小:".$file["size"]." bytes"; if($imgpreview==1) { echo "<br>图片预览:<br>"; echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); echo " title=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; } } ?>