繁体   English   中英

阻止PHP中用png或jpg重命名的gif上传图像

[英]Block upload gif image renamed with png or jpg in PHP

我有一个上传系统,用户只能上传pngjpg图像,但是,例如,如果用户使用.png重命名gif图像,则系统会正常上传gif图像,因此,如何阻止gif图像以及其他不是pngjpg的扩展名? 我的代码:

$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM