0

我在 IE10 中工作以获取页面。在那使用一些图像。少数图像包含错误的图像类型(原始图像类型为“png”,但扩展名为“jpg”)。虚假图像在 IE10 中被破坏(但在 Firefox 中显示)。如何使用 javascript 查找原始图像类型,避免图像扩展并在 IE10 中显示?

需要像这样的代码

   var imgEle = document.createElement('img');
   imgEle.src = "imagePath/imageName."+findImageType("imagePath/imageName.jpg");

    function findImageType(imagUrl)
    {
      //do stuff
      return imageType;
    }

可能吗?如果不是,有什么方法可以找到原始图像类型?

4

2 回答 2

1

我认为您可以为此使用 HTTP HEAD 请求(通过 XMLHttpRequest)。

您可以使用该方法获取图像的 mime 类型,因此您应该能够检查他的真实类型。

于 2013-04-08T08:14:38.057 回答
0

结合使用deokman的答案和这个SO问题中的亚当:

Javascript/Ajax 中的 HTTP HEAD 请求?

您可以构建一个函数,向具有图像的服务器发出特定的 HEAD 请求,然后使用 获取内容类型getResponseHeader("content-type"),然后可以将不同的内容类型字符串转换为实际的图像扩展名。如果您请求图像的服务器正确计算了内容类型(即不基于扩展名),那么这将是一种方法。

另一种方法是创建一个服务器端脚本,该脚本实际上分析每个文件的标题(读取二进制数据的前几个字节)以确定图像类型,并通过 ajax 再次调用它。

但是,使用任何一种方法都会遇到的问题是,您必须先更改扩展名,然后才能显示图像,然后这将指向一个不存在的文件。因此,解决问题的最佳方法是首先使用正确的扩展名重命名文件。

于 2013-04-08T08:15:50.833 回答