我的问题很简单:
检查图像类型的最佳(和安全)方法是什么?
我的网站需要它,我想上传照片。 (允许扩展jpeg,png,gif?)
谢谢...
答案 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!";
}