ホームページ >バックエンド開発 >PHPチュートリアル >AJAX と PHP を使用してファイルを効果的にダウンロードするにはどうすればよいですか?

AJAX と PHP を使用してファイルを効果的にダウンロードするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 13:51:10371ブラウズ

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);
}

このコードは、filename パラメーターで指定されたファイルのダウンロードを担当する、download.php という別の PHP スクリプトを作成します。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。