internet explorer-IE无法下载路径名为unicode的bmp文件



我有一个网络应用程序,允许用户通过按下网页上的按钮上传和下载图像文件。此页面的用户报告,当文件具有Unicode路径名时,IE 7和8无法下载文件。IE通过对话框提示用户:"Internet explorer无法在(Web服务器)下载(文件)。".

这个问题只发生在IE中。不幸的是,我无法在我的机器上使用这些版本来重现这个问题。

我的问题是,是什么原因导致了这种情况,我该如何防止这种情况发生?我读过关于缓存控制的问题(我目前将其设置为无缓存);但是,我没有使用HTTP-S,问题只出现在包含Unicode字符的文件名中。

更新:只有当用户尝试下载bmp文件路径时,才会出现此问题。非标准文件路径下载成功。可能是油漆制造了麻烦吗?

Javascript集附加一个iframe,该iframe指向与文件相关联的url。

感谢您的最新评论。

这可能是:

  1. 您的Web服务器
  2. 您客户端的浏览器扩展
  3. 你的文件名太长(如下,但v旧文章)

我认为这很可能是第二个问题,因为你无法重现这个问题(你使用的是真实版本的浏览器,对吧?不是像MultiIE那样的浏览器)。

你可以通过运行iexplore -extoff让他们在没有扩展的情况下启动InternetExplorer,看看这是否有什么不同。他们还可以检查自己的安全设置。

我发现IE可能是多种因素造成的,正如我之前提到的,我遇到了类似的"无法下载"问题,原因是出于某种原因,我们的服务器对内容进行了双重压缩,使用IE,而IE显然不太喜欢这样。

我知道这些文章已经过时了,我确信它们不适用,但它们可能是相关的:http://support.microsoft.com/kb/816868http://support.microsoft.com/kb/812935/en-us

我认为您必须在下载链接中对文件名进行url编码。问题可能是浏览器不知道web服务器文件系统的字符集,所以不同的浏览器可能会对文件系统的字母集采取不同的假设。Url编码应该可以解决这种歧义。

因此,只有当您将内容处置标头设置为附件时,才会出现错误。一旦我从http响应标头中删除了标头,问题就得到了解决。

如果将mime类型设置为未知值,位图将不会呈现为图像,而是将被视为附件。

最新更新