我正在使用以下内容来检测EXTERNAL图像的扩展名:
$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
这样的图片的扩展名是什么?我怎样才能返回真正的扩展名?
谢谢!
答案 0 :(得分:1)
如果您确定相关文件实际上是图片,那么您可以使用getimagesize()或exif_imagetype()来确定您正在使用的图片类型。然后,您可以将其映射到相应的文件扩展名。
但要小心,如果在不是图像的文件上调用这些函数,则无法确定会发生什么。
答案 1 :(得分:0)
请尝试此代码。
$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...
}
答案 2 :(得分:0)
仅为了福利.. 另一种方法:
$newFileName = $_FILES['userfile']['name'];
$fileExt =substr(strrchr($newFileName,'.'),1);