首頁 >後端開發 >php教程 >如何使用AJAX和PHP有效下載檔案?

如何使用AJAX和PHP有效下載檔案?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-04 13:51:10274瀏覽

How to Effectively Download Files Using AJAX and PHP?

如何在 PHP 中透過 AJAX 下載檔案

在 PHP 中透過 AJAX 呼叫下載檔案需要傳統 AJAX 方法以外的創意方法。以下是解決這項挑戰的方法:

不要使用 AJAX 進行檔案下載,而是考慮開啟一個新視窗並將其位址設定為下載連結。這是一種簡單而有效的技術。

或者,您可以使用 JavaScript 的 document.location 屬性將使用者的瀏覽器直接重定向到下載連結。以下是範例:

function csv() {
  ajaxRequest = ajax();
  postdata = "data=" + document.getElementById("id").value;
  ajaxRequest.onreadystatechange = function () {
    var ajaxDisplay = document.getElementById('ajaxDiv');
    if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
      document.location = 'download.php?filename=' + ajaxRequest.responseText;
    }
  };
  ajaxRequest.open("POST", "csv.php", false);
  ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  ajaxRequest.send(postdata);
}

此程式碼建立一個名為 download.php 的單獨 PHP 腳本,負責下載 filename 參數中指定的檔案。

在 download.php 中,使用下列內容強制下載檔案的程式碼片段:

$fileName = 'file.csv';
$downloadFileName = 'newfile.csv';

if (file_exists($fileName)) {
  header('Content-Description: File Transfer');
  header('Content-Type: text/csv');
  header('Content-Disposition: attachment; filename='.$downloadFileName);
  ob_clean();
  flush();
  readfile($fileName);
  exit;
}

以上是如何使用AJAX和PHP有效下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn