2012-08-13 88 views
4

我是網絡開發新手,我面臨着CSV文件的異常問題。CSV文件打開爲頁面

我有一個鏈接,下載一個CSV文件:

<a href="http://mysite.com/public/sample.csv">Sample CSV file</a> 

在我的本地機器它給出了一個下載對話框 - 這是正確的,這就是我想要

當我將相同的代碼上傳到我的Web服務器時,它會在相同的瀏覽器選項卡中將csv文件作爲網頁打開。我不想要,我想要一個對話框來下載選項

任何人都可以告訴我我做錯了什麼或我需要做什麼?

+1

使用Apache服務器? – 2012-08-13 11:22:36

+0

檢查本地機器和Web服務器返回的'Content-type'。另外,在你的問題中使用較少的標點符號。 '!!!!!'並沒有真正增加任何價值。 – 2012-08-13 11:23:09

+0

@韋斯利:是的,我正在使用Apache服務器 – PhpStudent 2012-08-13 11:25:59

回答

2

您可以將以下行添加到.htaccess。如果打開,所有CSV文件將被強制下載。 AddType application/octet-stream csv 它會將MIME頭添加到所有csv文件,因此瀏覽器會明白它需要下載該文件,而不是顯示它。

+1

請。它是'text/csv'而不是'application/octet-stream'。下載選項是您應該留給客戶的東西。服務器應報告正確的MIME類型,然後使用「Content-disposition」告訴客戶端打開一個下載框。 – 2012-08-13 11:25:41

+0

Noufal,如果他有鏈接「下載CSV」怎麼辦? – Tim 2012-08-13 11:27:02

+1

@NoufalIbrahim:我認爲你對mime類型是正確的,但我認爲這兩種情況都是同一個客戶端,即OP的瀏覽器。我不知道爲什麼有人會希望CSV在瀏覽器選項卡中打開,但這裏的答案只是試圖確保發送正確的標題。我認爲有幾種可能的啞劇可以工作。我想大多數人會得到一個下載對話框,而不需要使用內容處置。 – 2012-08-13 11:30:29