【问题标题】:PHP getimagesize(): IMAGETYPE or MIME-type?PHP getimagesize():IMAGETYPE 还是 MIME 类型?
【发布时间】:2012-06-09 00:09:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: php image-processing getimagesize


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      文档说:

      mime 是图像的对应 MIME 类型。这个信息可以 用于传递具有正确 HTTP Content-type 标头的图像

      我相信 IMAGETYPE 是有效的选择。

      【讨论】:

        【解决方案3】:

        我不确定你的问题是否足够清楚,但为什么不能先使用简单的 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

        【讨论】:

          猜你喜欢
          • 2015-04-24
          • 2010-12-06
          • 2013-05-10
          • 2015-06-16
          • 1970-01-01
          • 2011-05-14
          • 2013-08-13
          • 2013-01-05
          • 2011-07-05
          相关资源
          最近更新 更多