1

我有一个简单的图像大小调整脚本,它适用于 JPEG,但不适用于 GIF 或 PNG。第一步是获取正确的图像类型,以便我可以相应地处理它。

我的问题是:getimagesize() 似乎同时返回 IMAGETYPE 和 MIME 类型...那么我应该使用哪个来确定图像是 JPEG、PNG 还是 GIF?

PHP 为您提供了两种执行此操作的方法,这似乎很奇怪,所以我认为它们各有其指定的用途?

4

3 回答 3

2

这主要是为了方便,尽管在某些情况下多个 IMAGETYPE 对应于相同的 MIME 类型。例如IMAGETYPE_JPCIMAGETYPE_JPXIMAGETYPE_JB2都具有 MIME 类型application/octet-stream

要确定图像是 JPEG、PNG 还是 GIF,您可以使用其中任何一种,但我通常会使用 IMAGETYPE。

于 2012-06-08T15:53:55.010 回答
1

文档说:

mime 是图像的对应 MIME 类型。此信息可用于交付具有正确 HTTP 内容类型标头的图像

我相信 IMAGETYPE 是有效的选择。

于 2012-06-08T15:48:52.510 回答
0

我不确定您的问题是否足够清楚,但为什么不能先使用简单的 IF 语句检查图像类型?

例如,我可以在一行中检查 3 种基本的 mime 类型和图像大小,即:

if ( (($_FILES["file"]["type"] == "image/gif") || 
     ($_FILES["file"]["type"] == "image/jpeg") || 
     ($_FILES["file"]["type"] == "image/png")) && 
     ($_FILES["file"]["size"] < 1000000) )
{    
// your re-size script    
} else {     
echo "Wrong image mime type!";   
}

这是 mime 类型列表:http ://www.php.net/manual/en/function.mime-content-type.php#87856

于 2012-06-08T16:09:39.863 回答