检查图像是否实际上是图像的正确方法

时间:2016-04-01 00:05:11

标签: php

我想知道检查用户提供的图像是否是实际图像的正确方法是什么。

我看到以下两个例子:

$x = pathinfo('upload.png', PATHINFO_EXTENSION);

结果:png

$x = new finfo(FILEINFO_MIME_TYPE);
$x->file('upload.png');

结果:image/png

1 个答案:

答案 0 :(得分:0)

后者,可以改变扩展,finfo也可以伪造,但是更难。有关其他检查方法,请参阅the docs。作为a commenter warns,将有害的可执行代码包装在标识为GIF的文件中并不困难。但话说回来,这是我使用的图像检查:

if (!$img = @imagecreatefromgif($uploadedfilename)) {
  trigger_error('Not a GIF image!',E_USER_WARNING);
  // do necessary stuff
}
祝你好运!