我允许用户使用 SAS 从 Windows Azure 存储池下载文件(参见本讨论)。正在构建 SAS,然后Request.Redirect(targetURL)
调用 SAS 以重定向客户端的浏览器以下载文件。
这适用于使用 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。下面的第一条评论不是诀窍......
亲切的问候,
罗比德萨特