【问题标题】:Finding an images true extension using pathinfo()使用 pathinfo() 查找图像真正的扩展名
【发布时间】:2012-02-03 01:56:51
【问题描述】:

我正在使用以下方法来检测外部图像的扩展名:

        $url = (POST_IMAGESELECTOR);
        $path_parts = pathinfo($url);
        $extension = $path_parts['extension'];

所有图片均来自各种外部来源。上面的示例在 80% 的情况下都有效,但是,当我遇到没有传统扩展名的图像时,它会失败。一个示例是位于此处的图像:

http://media.kohls.com.edgesuite.net/is/image/kohls/227522?wid=1000&hei=1000&op_sharpen=1

这样的图片上的扩展名是什么?如何返回真正的扩展名?

谢谢!

【问题讨论】:

标签: php image-processing


【解决方案1】:

如果您确定相关文件实际上是图像,那么您可以使用getimagesize()exif_imagetype() 来确定您正在使用的图像类型。然后,您可以将其映射到适当的文件扩展名。

但请注意,如果对非图像文件调用这些函数,您无法确定会发生什么。

【讨论】:

  • 好主意。我已经在脚本中的不同位置运行 getimagesize(),并且可以从那里传递文件类型。谢谢。
【解决方案2】:

请试试这个代码。

$url = (POST_IMAGESELECTOR);
list($width, $height, $type, $attr) = getimagesize($url);
$imageType = image_type_to_mime_type($type);
witch($imageType) {
    case "image/jpeg":
        // your actions go here...
}

【讨论】:

    【解决方案3】:

    只为利益.. 另一种方法:

    $newFileName = $_FILES['userfile']['name'];
    $fileExt =substr(strrchr($newFileName,'.'),1);
    

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      相关资源
      最近更新 更多