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

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

Mary-Kate Olsen
リリース: 2024-12-04 13:51:10
オリジナル
339 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート