[英]Block upload gif image renamed with png or jpg in PHP
我有一个上传系统,用户只能上传png和jpg图像,但是,例如,如果用户使用.png重命名gif图像,则系统会正常上传gif图像,因此,如何阻止gif图像以及其他不是png或jpg的扩展名? 我的代码:
$imageNameBefore = $_FILES["the_image"]["name"];
$imageNameBeforeExt = basename($nomeImgAntes);
$imageNameExt = pathinfo($imageNameBeforeExt, PATHINFO_EXTENSION);
$allowedExt = array("jpg", "jpeg", "png");
if(!in_array($imageNameExt, $allowedExt )) {
echo "Only images with extensions jpg or png are accepted!";
} else {
$imageNameTmp = $_FILES["the_image"]["tmp_name"];
$imageNameDir = "../photos";
$nameImageEnd = md5($imageNameTmp).$imageNameExt;
move_uploaded_file($imageNameTmp, ($imageNameDir.$nameImageEnd));
imagedestroy($imageNameTmp);
}
代替检查文件名,而是通过“解析”整个内容(即将图像加载到gd中)或通过魔术字节(即文件的某些部分必须存在并包含要包含的特定值)来检查文件的内容至少有机会成为有效的png / jpeg图片)。
看到
-http://docs.php.net/function.finfo-文件
-http://docs.php.net/function.imagecreatefromjpeg
-http://docs.php.net/function.imagecreatefrompng
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.