簡體   English   中英

是否可以通過此設置在PHP中的ajax調用中啟用文件下載?

[英]Is this set up possible to enable file download on a ajax call in PHP?

我絕不是Web開發人員。 我在GWT上做了一些工作。 我們曾經在那里進行過這種設置。 由於所有內容都存在ajax,因此每次我們進行服務器RPC調用時,我們都會顯示一個進度條,當響應返回時,將在rpc / ajax的回調中關閉該進度條。

現在,我正在研究一種嘗試在PHP中進行操作的工具(我仍在學習)。 我有一個看起來像這樣的設置,

1:有一個HTML表單,其中包含一些字段。 實際上,我在這里需要一個文件上傳選項,但是例如,讓我們說有兩個文本字段。

2:用戶提交表單時。 我想打電話給ajax打電話說test.php,同時顯示進度條出現(基本上阻塞了整個頁面,但也沒有刷新頁面)。 當ajax響應到來時,我將關閉進度欄。

3:現在,如果服務器返回一些文本,則很容易處理,我可以使用document.getElementById在ajax回調中處理它。 但就我而言,我想做的是在服務器端使用post參數進行處理,創建一個文本文件並返回它。 然后回到客戶端並關閉進度。

我編寫了一個示例腳本,該腳本通過設置標頭返回文件

header('內容描述:文件傳輸');
header('Content-Type:text / csv');
header('Content-Disposition:附件; filename ='。$ file);

因此,此php文件可以獨立正常運行,當我在瀏覽器中打開它時,它會引發一個下載鏈接。 當我嘗試通過ajax請求調用它時,它不返回任何內容。

誰能告訴我這種方法是否不正確?

<script>
    window.open("filedownload.php, '_self', false);
</script>

將提示用戶下載文件而無需導航到新頁面。

瀏覽器將處理下載進度顯示。 這是用戶會熟悉的體驗。

如果要在ajax請求完成時下載文件,則將上述代碼添加到XMLHttpRequest回調中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM