2016-04-01 37 views
-1

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

只见下面两个例子:

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

结果:png

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

结果:image/png

+0

尝试调整大小或使用[getimagesize](https://secure.php.net/manual/en/function.getimagesize.php) – jDo

+0

看看这个http://stackoverflow.com/questions/15595592/php -validating-the-file-upload –

+0

'getimagesize' .... – zerkms

回答

0

后者,延伸可以改变的,FINFO可以伪造同样,但它更困难。请参阅the docs以了解其他检查方法。由于a commenter warns,在一个标识为GIF的文件中包装有害的可执行代码并不困难。但这就是说,这里是我使用的图像检查:

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

祝你好运!

相关问题