【问题标题】:Azure storage download on IE9 changes the file extention to ZIPIE9 上的 Azure 存储下载将文件扩展名更改为 ZIP
【发布时间】:2012-08-14 00:24:47
【问题描述】:

我允许用户使用 SAS 从 Windows Azure 存储池下载文件(参见this discussion)。 SAS 正在构建中,接下来会调用 Request.Redirect(targetURL) 来重定向客户端的浏览器以下载文件。

这适用于使用 Chrome 下载文件(以扩展名 .dp 结尾的专有二进制文件)。

但是,当在 Internet Explorer 9 上下载相同的文件(使用相同的 URL)时,文件的扩展名被更改为 .zip(删除原来的 .dp).... 一些用户仍然使用 IE9 :(

我检查了 blob 的内容类型,它是 application/octet-stream(因此应该是正确的)。

为什么 IE9 会更改文件的扩展名,我可以做些什么来防止这种情况发生? 我是否需要指示 Azure 将 .dp 文件保持原样(mime 类型),如果需要,我该如何配置?

编辑:我真的想使用重定向而不是 blob.openread()/response.write() 以避免网络服务器上的额外负载。

更新 1

我用Fiddler查看了下载请求上的服务器回答,很明显content-type是正确的:

HTTP/1.1 200 OK
Content-Length: 60783
Content-Type: application/octet-stream
Last-Modified: Fri, 17 Aug 2012 13:25:24 GMT
ETag: 0x8CF4XXXE4DD2184
Server: Blob Service Version 1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 21XXXXX-9e42-4ca8-a425-e84269d9f104
Date: Fri, 17 Aug 2012 16:49:05 GMT

服务器的内容负载以

开头

PK����nAQ������p����

* FIDDLER:RawDisplay 被截断为 128 个字符。右键单击以禁用截断。 *

IE 是否将“PK”解释为 PKZIP 并因此认为它是 ZIP 文件?

如何禁用(在客户端) - cf。下面的第一条评论不是诀窍...

亲切的问候,

罗比·德萨特

【问题讨论】:

  • 在 IE9 之前有一个 IE 安全设​​置“根据内容打开文件,而不是文件扩展名”,默认为 true 并导致此行为。该设置不在 IE9/IE10 中,但启用 MIME 嗅探 - 我将其设置为禁用,认为它可能具有预期的效果,但它并没有改变我的这种行为。或许是领先?
  • 感谢您的反馈。我确实找到了设置,但禁用它们并没有解决问题。不幸的是,我现在确实认为这是一个客户端问题,因为从服务器返回的响应中,内容类型是正确的......(参见更新 1)

标签: asp.net internet-explorer-9 azure-storage


【解决方案1】:

我怀疑这只是 IE 做一些烦人的事情。我建议将内容类型更改为application/x-foobar 之类的东西,也许用更有意义的东西替换“foobar”。 :-)

我还没有测试过,但我认为这足以让 IE 停止尝试猜测文件类型。

【讨论】:

    【解决方案2】:

    您可以通过在末尾添加查询字符串参数来欺骗 IE,例如:&ext=.exe。

    我们生成一个指向 .exe + sas 令牌的链接。因此,该链接可在短时间内访问。 IE 无法识别该文件 https://.blob.core.windows.net/container/file.exe?sv=2014-02-14&sr=b&sig=1oRgEzi%2F5uXCPUiseHizadfasdfa0vEs%3D&st=2015-05-18T19%3A36 %3A42Z&se=2015-05-18T19%3A46%3A42Z&sp=r 实际上是一个可执行文件,并且没有文件扩展名保存它。但如果我这样做: https://.blob.core.windows.net/container/file.exe?sv=2014-02-14&sr=b&sig=1oRgEzi%2F5uXCPUiseHizadfadfasdfa0vEs%3D&st=2015-05-18T19%3A36%3A42Z&se=2015-05-18T19 %3A46%3A42Z&sp=r&ext=.exe(在末尾添加 &ext=.exe) IE 现在可以正确保存文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2020-09-17
      • 2020-10-30
      • 2021-08-11
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多