我允許用戶使用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