如何在PHP中找到没有扩展名的图像类型?

3

我有一个用于上传图片的PHP类。这个过程会上传图片(.png,.jpeg,.gif)。 我正在使用以下函数来查找图片类型:

 function getImageType($image_name){
    return end(explode('.',$mage_name));
              }

如果有人上传了一个带有虚假扩展名的文件,则会出现错误。我该如何在不检查扩展名的情况下检查图像类型?
1个回答

9
您可以使用getimagesize获取mime类型,然后根据类型生成扩展名。
在代码中,这可能看起来像这样:
$image_info = getImageSize($path);
switch ($image_info['mime']) {
case 'image/gif':
    $extension = '.gif';
    break;
case 'image/jpeg':
    $extension = '.jpg';
    break;
case 'image/png':        
    $extension = '.png';
    break;
default:
    // handle errors
    break;
}

这可能也有效:http://php.net/manual/zh/function.mime-content-type.php - ddoor
PHP中的函数名是区分大小写的。除非您首先创建getImageSize(),否则它不存在。 - XedinUnknown
1
据我所知,它们是不区分大小写的(http://php.net/manual/en/functions.user-defined.php),其中在中间某个地方有一条注释:“函数名不区分大小写,尽管按照声明中出现的方式调用函数通常是一个好习惯。”@XedinUnknown - complex857
1
我一直生活在谎言中...整个语言都是计算机科学,函数名称是计算机信息。 - XedinUnknown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接