AJAX 驅動的文件下載:指南
在 Web 開發領域,需要使用直接從伺服器下載文件AJAX 請求。為了實現這一點,可以使用各種方法。
一種標準方法是在點擊按鈕時啟動 AJAX 請求。這是一個嘗試執行此操作的腳本:
var xhr = new XMLHttpRequest(); xhr.open("GET", "download.php"); xhr.send();
為了提供文件下載服務,可以使用這樣的PHP 腳本:
<?php header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename= file.txt"); header("Content-Transfer-Encoding: binary"); readfile("file.txt"); ?>
但是,此方法可能不會產生所需的結果行為。因此,需要一種替代策略。
更新的解決方案:引入下載屬性
HTML5 中出現的是下載屬性。此屬性受到 Firefox 和 Chrome(即將推出 IE11)等主流瀏覽器的支持,為文件下載提供了更簡化的解決方案。
<a href="file.txt" download="file.txt">Download File</a>
只要檔案與網站位於同一來源,它就可以使用此屬性下載。
舊解決方案:利用 AJAX 和 Window重定向
在下載屬性出現之前,解決方法涉及使用 AJAX 請求或 window.location 操作。
$.ajax({ url: 'download.php', type: 'POST', success: function() { window.location = 'download.php'; } });
但是,直接使用 window.location 是更有效的方法。在這種情況下有效的解決方案。
以上是如何使用 AJAX 觸發文件下載以及最佳方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!