如何检查上传的文件图像

时间:2013-03-31 05:45:21

标签: php image filter detect

我知道PHP中使用getimagesizeFileinfo扩展名的方法,但所有这些方法都需要一些库(GDFileinfo)。

我发现此代码用于从提供的文件中检测图像:

function is_image($image_path)
{
    if (!$f = fopen($image_path, 'rb'))
    {
        return false;
    }

    $data = fread($f, 8);
    fclose($f);

    // signature checking
    $unpacked = unpack("H12", $data);
    if (array_pop($unpacked) == '474946383961' || array_pop($unpacked) == '474946383761') return "gif";
    $unpacked = unpack("H4", $data);
    if (array_pop($unpacked) == 'ffd8') return "jpg";
    $unpacked = unpack("H16", $data);
    if (array_pop($unpacked) == '89504e470d0a1a0a') return "png";

    return false;
}

安全吗?是否使用它?

1 个答案:

答案 0 :(得分:1)

我引用了getimagesize函数的PHP文档: -

  

此功能不需要GD图像库。

所以你应该可以使用它。