检查图像类型的最佳方法

时间:2014-01-26 16:29:57

标签: php

我的问题很简单:

  

检查图像类型的最佳(和安全)方法是什么?

我的网站需要它,我想上传照片。 (允许扩展jpeg,png,gif?)

谢谢...

3 个答案:

答案 0 :(得分:3)

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'The picture is not a gif';
}
?> 

See here获取可能类型的列表

根据您的要求,您必须使用以下

IMAGETYPE_GIF
IMAGETYPE_JPEG
IMAGETYPE_PNG


如何安全?

因为它不仅检查扩展以声明无辜的东西。它实际上是这样做的

  

exif_imagetype()读取图像的第一个字节并检查其签名。   找到正确的签名后,将返回适当的常量值,否则返回值为FALSE。

答案 1 :(得分:0)

你也可以像这样使用正则表达式:

if( preg_match('/\.(jpg|jpeg|png|gif)(?:[\?\#].*)?$/i', $image, $matches) ) {
    //Your code here
}

答案 2 :(得分:0)

$filetype = pathinfo('yourimage.png', PATHINFO_EXTENSION);
if($filetype == "jpeg" || $filetype == "jpg" || $filetype == "png" || $filetype == "gif"){ 
  echo "Yay, correct filetype!";
}