2009-04-08 73 views
8

如何顯示使用PHP的「另存爲」對話框,它會要求用戶將字符串作爲文本文件下載?基本上我會從數據庫中檢索一些值,然後希望能夠下載包含這些數據的.txt文件。如何使用PHP顯示「另存爲」對話框文本文件

+0

只是把它扔在這裏,因爲除了emil的回答,我還需要它....換行符:echo「\ r \ n」; – CheeseConQueso 2010-05-18 17:25:38

回答

24

這應該工作:

header('Content-type: text/plain'); 
header('Content-disposition: attachment; filename="test.txt"'); 
6

只是對@Emil H公司的回答擴大:

使用這些頭調用將只在一個新的請求的情況下工作。你需要實現一些東西,讓你的腳本能夠知道它何時實際發送文件,而不是當它顯示錶單時告訴用戶下載文件。

2

爲了澄清)報頭(的使用

Official PHP Manual

header()函數用於發送原始HTTP標頭。有關HTTP頭的更多信息,請參閱»HTTP/1.1規範。

請記住,必須在發送任何實際輸出之前調用header(),可以使用普通HTML標記,文件中的空行或PHP發送。使用include()require()函數或其他文件訪問函數讀取代碼並在header()被調用之前輸出空格或空行是非常常見的錯誤。使用單個PHP/HTML文件時存在同樣的問題。

所以基本上,當你使用header()時,你正在改變整個頁面。確保你迴應的唯一內容是字符串。

3
<? 
header ("Content-Type: application/download"); 
header ("Content-Disposition: attachment; filename=$yourfile"); 
header("Content-Length: " . filesize("$yourfile")); 
$fp = fopen("$yourfile", "r"); 
fpassthru($fp); 
?> 
相關問題