我有一个简单的图像大小调整脚本,它适用于 JPEG,但不适用于 GIF 或 PNG。第一步是获取正确的图像类型,以便我可以相应地处理它。
我的问题是:getimagesize() 似乎同时返回 IMAGETYPE 和 MIME 类型...那么我应该使用哪个来确定图像是 JPEG、PNG 还是 GIF?
PHP 为您提供了两种执行此操作的方法,这似乎很奇怪,所以我认为它们各有其指定的用途?
我有一个简单的图像大小调整脚本,它适用于 JPEG,但不适用于 GIF 或 PNG。第一步是获取正确的图像类型,以便我可以相应地处理它。
我的问题是:getimagesize() 似乎同时返回 IMAGETYPE 和 MIME 类型...那么我应该使用哪个来确定图像是 JPEG、PNG 还是 GIF?
PHP 为您提供了两种执行此操作的方法,这似乎很奇怪,所以我认为它们各有其指定的用途?
这主要是为了方便,尽管在某些情况下多个 IMAGETYPE 对应于相同的 MIME 类型。例如IMAGETYPE_JPC
,IMAGETYPE_JPX
和IMAGETYPE_JB2
都具有 MIME 类型application/octet-stream
。
要确定图像是 JPEG、PNG 还是 GIF,您可以使用其中任何一种,但我通常会使用 IMAGETYPE。
文档说:
mime 是图像的对应 MIME 类型。此信息可用于交付具有正确 HTTP 内容类型标头的图像
我相信 IMAGETYPE 是有效的选择。
我不确定您的问题是否足够清楚,但为什么不能先使用简单的 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