2010-07-11 67 views
1

我想讓用戶只需單擊一個按鈕即可下載文件。事情是,該文件實際上並不存在 - 它只是一些動態內容。您可以使用AJAX回顯文件進行下載嗎?

因此,可以說:

$('a.download').click(function(){ 

$.post('get.php'); 
}) 

,並在我的PHP:

header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Disposition: attachment; filename=something.txt"); 
header("Content-Type: text"); 
header("Content-Transfer-Encoding: binary"); 
echo 'abcbdefg' 

是不是有效?有其他方法可以做到嗎?

回答

1

只需創建一個鏈接到文件,就像這樣:

<a href="get.php">download my file</a> 

每當有類型的PHP文件的請求時,你的網絡服務器會首先處理的任何文字它包含了客戶端的文件和輸出;僅僅因爲它是動態的,你不必做任何特殊的事情。

使用$ .post()對你想要做的事沒有意義;將數據POST到您指定的URL,它不會提示用戶保存文件。

+0

我簡化了。我還需要POST一些數據,具體取決於哪個輸出是生成的。 – Rohan 2010-07-11 06:16:40

+0

不幸的是,jQuery的$ .post()函數不會讓你的瀏覽器提示用戶下載文件 - 你必須將瀏覽器重定向到get.php而不是執行AJAX請求。你也許可以創建一個表單元素,其動作爲'get.php',然後在其上觸發一個submit()... – Faisal 2010-07-11 07:03:15

+0

我想這會工作,謝謝:-) – Rohan 2010-07-16 17:42:55

0

是的,這是有效的。我很漂亮,這是做到這一點的最佳方式。

相關問題