ホームページ ウェブフロントエンド jsチュートリアル PHP と AJAX で作成した CSV ファイルを強制的にダウンロードするにはどうすればよいですか?

PHP と AJAX で作成した CSV ファイルを強制的にダウンロードするにはどうすればよいですか?

Oct 24, 2024 am 08:35 AM

How to Force Download a CSV File After Creation with PHP and AJAX?

PHP で AJAX 経由でファイルをダウンロードする方法

Web アプリケーションを操作する場合、多くの場合、サーバーからファイルをダウンロードする必要があります。 AJAX (非同期 JavaScript および XML) は、ページを再ロードせずにこのようなダウンロードを開始する方法を提供します。

1 つの方法には、AJAX 関数をトリガーするボタンの作成が含まれます。次のコード スニペットは、このアプローチを示しています。

<code class="php">function csv(){
  $ajaxRequest = ajax();
  $postdata = "data=" . document.getElementById("id").value;
  $ajaxRequest.onreadystatechange = function(){
    var ajaxDisplay = document.getElementById('ajaxDiv');
    if($ajaxRequest.readyState == 4 &amp;&amp; $ajaxRequest.status==200){
      ajaxDisplay.innerHTML = $ajaxRequest.responseText;           
    }
  }

  $ajaxRequest.open("POST","csv.php",false);
  $ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  $ajaxRequest.send($postdata);
}</code>
ログイン後にコピー

ただし、ここでの質問は、PHP によって作成された CSV ファイルを強制的にダウンロードする方法です。 PHP ファイルで提供されているスクリプトは次のとおりです:

<code class="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;
}
echo "done";</code>
ログイン後にコピー

問題は、このスクリプトを実行するとダウンロードが開始されず、代わりにページ内 (ajaxDiv 内) に CSV ファイルの内容が表示されることです。 .

この問題に対する答えは、AJAX はファイルのダウンロードを目的としていないということです。代わりに、新しいウィンドウを開いてそのアドレスをダウンロード リンクに設定することをお勧めします。あるいは、document.location = .....

を使用して、ページをダウンロード リンクに直接リダイレクトすることもできます。

以上がPHP と AJAX で作成した CSV ファイルを強制的にダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

&#x27; this&#x27; JavaScriptで? &#x27; this&#x27; JavaScriptで? Mar 04, 2025 am 01:15 AM

&#x27; this&#x27; JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles