我有一个上传系统,用户只能上传 png 和 jpg 图片,但是,如果用户重命名 gif 图片, .png ,例如,系统正常上传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);
}
答案 0 :(得分:0)
而不是检查文件名,而不是通过"解析"来检查文件的内容。整个内容(即将图像加载到例如gd中)或通过魔术字节(即必须存在的文件的某些部分并包含特定值以至少有机会成为有效的png / jpeg图像)。
见
- http://docs.php.net/function.finfo-file
- http://docs.php.net/function.imagecreatefromjpeg
- http://docs.php.net/function.imagecreatefrompng