我允许用户使用SAS从Windows Azure存储池下载文件(参见this discussion)。 SAS正在构建中,接下来调用Request.Redirect(targetURL)
来重定向客户端的浏览器以下载文件。IE9上的Azure存储下载将文件扩展名更改为ZIP
这可以很好地使用Chrome下载文件(以扩展名.dp结尾的专有二进制文件)。
但是,当在Internet Explorer 9上下载相同的文件(使用相同的URL)时,文件的扩展名将被更改为.zip(删除原始.dp)....某些用户仍然使用IE9: (
我检查内容类型的斑点,这是application/octet-stream
(因此应该是正确的)。
为什么IE9更改文件的进一步扩展,我能做些什么来防止这种情况? 我需要指示Azure按原样离开.dp文件吗(如果是这样),如果可以,我该如何配置?
编辑:我真的想使用重定向,而不是blob.openread()/ response.write(),以避免额外的网络服务器负载。
更新1
我已经使用小提琴手看到的下载请求的服务器的答案,很显然,内容类型是正确的:
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
的内容有效载荷在服务器启动
PKnAQp
* FIDDLER:RawDisplay截断为128个字符。右键单击以禁用截断。 *
IE是否将PK解释为PKZIP,因此认为它是ZIP文件?
这怎么可以禁用(在客户端) - 比较。下面的第一个评论是不招...
亲切的问候,
罗比·德·苏特尔
IE9之前有一个IE安全设置“打开基于内容的文件,而不是文件扩展名”,默认为true,并导致此行为。该设置不在IE9/IE10中,但有启用MIME嗅探 - 我设置为禁用,认为它可能会有所需的效果,但它并没有改变我的这种行为。也许是领导呢? – 2012-08-17 15:15:18
感谢您的反馈。我确实找到了设置,但禁用它们并没有解决问题。不幸的是,我现在认为这是一个客户端问题,因为在从服务器回来的响应中,内容类型是正确的...(参考更新1) – Robbie 2012-08-17 16:51:44