2014-01-21 34 views
0

對不起,如果這是一個有點漫無邊際,並採取了一些主題。我會盡量保持直截了當,並說出我是JS,jQuery和PHP的新手蝙蝠:)用PHP保存Javascript字符串爲.TXT文件

我有一些JS生成一個字符串,我想以純文本格式保存這個字符串(.txt )文件到用戶本地機器。

我有一個PHP文件設置,簡單地做到這一點:

header('Content-type: text/plain'); 
header('Content-Disposition: attachment; filename="testFile.txt"'); 
echo "Saved Data"; 

如果我直接瀏覽這個頁面,然後我得到TESTFILE.TXT出現在我的Downloads文件夾。所有好爲止所以我試圖從JS送我的字符串使用:

$.post("_php/writeFile.php", 
{ 
    data:"Test Data" 
}, 
function(data, status) 
{ 
    alert("Data: " + data + "\nStatus: " + status); 
}); 

現在,當我運行這個警告火災和讀取「保存數據」字符串,所以我認爲是越來越達成的PHP但下載不觸發。

如果任何人都可以解釋這裏發生的事情,我自己的教育將是偉大的。如果你可以建議如何讓它工作,那麼這將是更好的我的理智:)

乾杯。

回答

4

下載文件不能由ajax請求觸發。您將不得不使用GET請求,導航到實際的網址,例如window.location.href = '_php/writeFile.php',或者提交與其操作具有相同網址的表單。

+0

如果OP有readFile.php(第一個)和writeFile.php(用於保存ajax請求完成的數據),我想'window.location.href = readFile.php'在回調內就足夠了。 – eithed

+0

如果您觸發下載而不導航離開頁面,請爲用戶創建一個動態鏈接以點擊,這會觸發PHP頁面。這繞過彈出窗口攔截器。如果您要在同一頁面上下載,則可以直接使用PHP頁面重新加載頁面,無論是通過GET還是通過POST形式。 – Schien

+0

那麼沒有辦法可以觸發下載,而無需離開原始頁面?對不起,如果這是一個愚蠢的迴應,我是第一個承認我的知識存在巨大差距。 – popClingwrap