【发布时间】: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