我尝试使用getimagesize()
,finfo
并获取Mime类型功能。但我注意到我们不能相信这些功能,因为我发现它在某些图像文件的情况下失败了。我们有更好的方法来识别文件是否是图像。
使用案例:我有一个包含php代码的文件。我保存了这个文件,带有一些图片扩展名。现在我想阻止此文件上传。
答案 0 :(得分:0)
尝试使用php的内置方法来检查图像类型,
int exif_imagetype ( string $filename )
如果file不是有效图像,则此方法返回false
,否则将返回指向图像类型的Integer。
它也会发出通知。所以你可以这样做。
if(@exif_imagetype($file)){
//Valid Image
} else {
// Invalid
}
答案 1 :(得分:0)
我认为你应该看看
mime_content_type
或
Fileinfo
的
system("file -bi $uploadedfile")
通过以下帖子查看更多详细信息视图
答案 2 :(得分:0)
您可以尝试以下代码:
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG
,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
答案 3 :(得分:0)
如果您的服务器在Linux上运行,则应执行NumberFormatException
:
file
这将正确定义mime类型