2010-10-29 191 views
1

我試圖通過ajax請求下載文件。 我有下面的代碼在我的PHP文件下載中心通過ajax請求下載PHP文件

$filedata="File data here" 
header("Content-type: application/octet-stream"); 
header("Content-Disposition:attachment; filename=report.txt"); 
header('Content-Transfer-Encoding: binary'); 
header("Pragma: public"); 
header("Expires: 0"); 
echo $filedata; 

它給我Ajax響應但不提供文件下載對話框。有什麼解決方案? 在此先感謝。

回答

1

我認爲ajax阻止了這個請求。

由於它從服務器讀取的ajax可能不會觸發文件保存對話框。

+0

是的。它不會觸發保存對話框。是否有其他解決方案來顯示保存對話框? – Rahul 2010-10-29 14:34:10

+0

請勿使用AJAX請求。只需直接指向url的URL(document.location)(用於GET請求)或構建一個隱藏表單並提交POST請求。 – 2010-10-29 15:37:41

+1

或者對於文件下載,只需添加一個鏈接。如果瀏覽器獲取內容,則它通常不會更改頁面,而只是下載文件並保存,保留在當前頁面上。如果您想確定,請將target =「_ BLANK」添加到標籤中,並將其下載到新的瀏覽器窗口中。 – 2010-10-29 19:12:44