IE无法下载带有unicode路径名的bmp文件

时间:2011-06-20 08:37:28

标签: internet-explorer unicode

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

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

我的问题是,什么可能导致这种情况,我该如何防止它发生?我已经读过有关缓存控制的问题(我目前将其设置为no-cache);但是,我没有使用HTTP-S,只有包含Unicode字符的文件名才会出现问题。

更新:问题似乎只发生在用户尝试下载bmp文件路径时。非标准文件路径下载成功。可能是Paint造成了麻烦吗?

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

3 个答案:

答案 0 :(得分:1)

感谢您提供最新评论。

这可能是:

  1. 您的Web服务器
  2. 您客户的浏览器扩展程序
  3. 您的文件名太长(如下所示,但是v旧文章)
  4. 我认为它很可能是第2号,因为你无法重现这个问题(你使用的是浏览器的真实版本,对吧?不像MultiIEs那样)。

    您可以通过运行iexplore -extoff让他们启动没有扩展程序的Internet Explorer,看看是否有任何区别。他们还可以检查他们的安全设置。

    我在IE中发现它可能是造成这个问题的众多因素,正如我之前提到过的“无法下载”类似的问题,原因是由于某种原因我们的服务器是双gzipping使用IE浏览器的内容,IE显然不那么喜欢。

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

答案 1 :(得分:0)

我认为你必须在下载链接中对文件名进行url-encode。问题可能是浏览器不知道Web服务器文件系统的字符集,因此不同的浏览器可能会对文件系统的字符集采取不同的假设。网址编码应解决这种歧义。

答案 2 :(得分:0)

因此,只有在将content-disposition标头设置为附件时才会出现该错误。从http响应标头中删除标头后,问题就解决了。

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