2011-05-19 68 views
1

下載CSV文件,以便嘗試這樣的:問題通過HTTP頭

header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=file.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
echo $fields; 

嘗試也和其他許多人。

header("Content-type: text/csv"); 

然而,發生的事情是,MySQL數據只是回聲瀏覽器。

這是我抓住了與螢火蟲的HTTPheaderResponse:

Date Wed, 18 May 2011 14:15:18 GMT 
X-Powered-By PHP/5.1.6 
Content-disposition attachment;filename=MyVerySpecial.csv 
Connection close 
Content-Length 992 
Server Apache/2.2.3 (Red Hat) 

編輯:值得注意的是,從一個jQuery。員額()我想這一點,如果影響它的回報。

所以,有誰知道爲什麼會出現這個問題?我很茫然。

感謝

+0

在標題之前你有任何輸出嗎?你的代碼是好的,應該工作 – Nemoden 2011-05-19 11:04:52

+0

好,如果看看我最新的編輯,我試圖將這作爲JQuery .post()的返回,如果這可能會影響它? – buymypies 2011-05-19 11:06:44

+0

它應該只是一個鏈接。爲什麼你需要jquery.post? – Nemoden 2011-05-19 11:08:55

回答

1

適當的MIME類型爲text/csv。試試看。

2

的,一定要設置的header()爲true的第二個參數首先,它是動力設定標題:

header('Content-Type: text/csv'); 

給你知道下載的大小,你應該:

header('Content-Length: '.strlen($fields)); 

最後,請確保$fields實際上是CSV格式的字符串。

您無法直接打印陣列,並希望瀏覽器自動將其轉換爲CSV。

+0

它是以csv格式,構建它之前。 – buymypies 2011-05-19 11:07:21

0

嘗試將Content-type標記爲application/downloadapplication/force-download。這應該強制瀏覽器打開保存對話框。

+0

都嘗試過。沒有改變:( – buymypies 2011-05-19 11:02:31