2010-02-02 60 views
1

我試圖通過瀏覽器返回一個zip文件,作爲流。這適用於其他類型的文件(例如Excel文件),但是當我開始處理zip文件時,我無法讓我的瀏覽器識別它是zip文件。Zip Mime Type看起來無法識別

在我的測試機器上運行的Firefox和IE都提示,詢問用什麼程序打開文件。 Explorer被設置爲zip文件關聯的默認值。

IE不報告很背,但是Firefox的告訴我,文件類型是什麼

應用程序/壓縮

其中,據我可以告訴是正確的MIME類型爲一個zip文件。我沒有設置的唯一東西就是擴展名,所以這個文件被稱爲「測試」而不是「Test.zip」,但據我所知,應該全部通過mime類型來解決。

任何人有什麼想法可能會出錯?

回答

4

你應該把與文件,確保文件的擴展名包括:

Content-disposition: attachment; filename=Test.zip

作爲標題。

在C#:

Response.ContentType = "application/zip"; 
Response.AddHeader("Content-Length", contentLength.ToString()); 
Response.AddHeader("Content-disposition", "attachment; filename=" + fileName); 

if (Request.UserAgent.Contains("MSIE")) 
{ 
    Response.AddHeader("Content-Transfer-Encoding", "binary"); 
} 
+0

約翰,謝謝你的迴應。內容類型和內容配置已經建立但不起作用。我猜測這個長度對發現的類型沒有什麼影響,因爲它影響到Firefox,所以也不確定傳輸編碼是否應該歸咎於它。 – Ian 2010-02-03 12:12:03

+0

@Ian:你能發表一些代碼嗎? – 2010-02-03 13:17:44

+0

不幸的是發佈代碼並不是真正的選擇,因爲代碼是通過相當深層次的類傳播的。你的回答幾乎是正確的。我錯過了文件擴展名,但是「Content-disposition」應該有一個小寫的'd',因爲它在IE中區分大小寫。這些改變後,一切工作。 – Ian 2010-02-05 08:41:44

0

如果你可以修改MIME類型,嘗試應用程序/ x-ZIP。

+1

我可以更改MIME類型,但應用程序/ x-zip不是ZIP標準。 – Ian 2010-02-03 12:10:44