如何在PHP

时间:2016-12-22 05:45:58

标签: php server

我尝试使用getimagesize()finfo并获取Mime类型功能。但我注意到我们不能相信这些功能,因为我发现它在某些图像文件的情况下失败了。我们有更好的方法来识别文件是否是图像。 使用案例:我有一个包含php代码的文件。我保存了这个文件,带有一些图片扩展名。现在我想阻止此文件上传。

4 个答案:

答案 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")

通过以下帖子查看更多详细信息视图

How to check file types of uploaded files in PHP?

答案 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类型