【问题标题】:Block upload gif image renamed with png or jpg in PHP阻止上传 gif 图像在 PHP 中用 png 或 jpg 重命名
【发布时间】:2015-06-29 02:39:48
【问题描述】:

我有一个上传系统,用户只能上传 pngjpg 图像,但是,如果用户将 gif 图像重命名为.png,例如系统正常上传gif图片,那么如何屏蔽gif图片和其他非png的扩展em> 还是 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);
}

【问题讨论】:

  • 到目前为止你尝试过什么?
  • 我将尝试使用 imagecreatefromjpeg 和 imagecreatefrompng 函数
  • 这是您代码的全部功能吗?你在使用任何框架吗?
  • 不使用框架,纯php

标签: php image


【解决方案1】:

通过“解析”整个内容(即将图像加载到 gd 中)或通过魔术字节(即文件的某些部分必须存在并包含特定值)来检查文件的内容,而不是检查文件名至少有机会成为有效的 png/jpeg 图像)。


- http://docs.php.net/function.finfo-file
- http://docs.php.net/function.imagecreatefromjpeg
- http://docs.php.net/function.imagecreatefrompng

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2012-11-19
    • 2010-11-17
    • 2012-01-22
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2012-01-24
    • 2012-12-21
    相关资源
    最近更新 更多