2012-08-22 56 views
0

我在做什麼是查詢數據庫來建立一個CSV文件。我使用這些標題來保存文件:PHP內容處置:附件在本地但不在服務器上工作

header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename="export.csv"'); 

它是在我的WAMP安裝在本地工作,但不是在服務器上。有沒有PHP或Apache中的設置或某些東西,我需要更改以允許這樣做?

當我點擊本地鏈接時,它會下載一個CSV文件。當我在現場服務器上做同樣的事情時,它只是把我帶到生成CSV內容的php頁面。

+0

您是否收到任何錯誤訊息?添加'ini_set('display_errors',1); error_reporting(E_ALL);'在腳本的頂部 - 我的猜測是你會看到'不能修改標題信息:標題已經發送到...' – DaveRandom

+0

你對此正確。我怎樣才能解決這個問題?爲什麼我沒有在我的本地環境中看到這個? – ryanpitts1

+1

嗯,我猜你的WAMP服務器設置已啓用輸出緩衝,允許您在發送一些內容後修改標題。既然你說這適用於你的本地設置,我猜測附加輸出只是空白區域,通常的罪魁禍首就是你的文件中的''標籤之外有一些空白區域。確保開頭'<?php'的'<'是文件中的第一個*字符,'?>'的'>'*最後*。這也適用於包含的文件。另外檢查你的編輯器是否用BOM保存文件(它不應該是) – DaveRandom

回答

1

嘗試使用application/octet-stream而不是text/csv。我不知道爲什麼你的瀏覽器對不同的域有不同的表現,但使用application/octet-stream更爲常見。這在RFC2616中提到。由於您沒有在瀏覽器中顯示它,因此內容類型無需與內容匹配。

相關問題