2009-05-04 70 views
0

我有一個有趣的問題,我認爲它與服務器相關。我希望CSV數據在用戶點擊按鈕時保存爲CSV文件。它可以在我的開發服務器上正常工作,但在製作時它只是將內容回顯到頁面。我的猜測是它一定是服務器問題,但我真的不確定它會是什麼。 GZIP可以影響這個嗎?將csv保存爲附件文件PHP + Apache安裝程序不起作用

我的頭,代碼如下:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Length: " . strlen($out)); 
header("Content-type: text/x-csv"); 
header("Content-Disposition: attachment; filename=$filename"); 
echo $out; 

所以上面這段代碼工作的開發服務器和生產只會呼應CSV頁面。有任何想法嗎?

+0

提到Christian的迴應,我檢查了HTTP和活的服務器是不一樣的。它增加了這一點: 有所不同:接受編碼 然後在Content-Type是不是我在PHP和度假村到指定: 的Content-Type:text/html的; charset = iso-8859-1 – AndreLiem 2009-05-05 19:47:16

+0

現在你可以添加更多關於活動服務器配置的細節,也許我們可以找到配置設置來警示它 – Christian 2009-05-06 07:41:55

+0

查看關於HTTP/1.1的W3C文檔,Vary關鍵字將改變內容 - 如果您定義的內容類型不在列表中,請鍵入。所以你需要將它添加到httpd.conf或.htaccess中的列表中。可能將文本/ x-csv添加到Accept-Encoding標頭可以解決問題。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html(向下滾動到14.44) http://httpd.apache.org/docs/2.0/content-negotiation.html – 2009-05-06 11:56:12

回答

1

我唯一能想到的就是mime類型。從一臺服務器轉移到另一臺服務器時,我遇到了mime-types(尤其是.flv文件)的問題。

我用於.csv文件的是application/octet-stream

希望有幫助

0

是的,我猜這也是mime型。你可能想嘗試特定於csv的「text/csv」(RFC 4180)或通用的「application/octet-stream」。