PHP で AJAX 呼び出しを使用してファイルをダウンロードする
バックグラウンド
AJAX テクニックは一般的に次の目的で使用されます。非同期データ交換ですが、ファイルのダウンロード用に設計されていません。この記事では、AJAX 環境内でファイルをダウンロードしようとするときに直面する課題に対処し、ファイルのダウンロードを強制する解決策を提供します。
課題
説明されているシナリオには AJAX 関数が含まれていますこれは、ユーザー入力に基づいて CSV ファイルを作成し、作成されたファイルの強制ダウンロードを開始することを目的としています。ただし、csv.php スクリプトの最後で提供された PHP コードを使用すると、ファイルのコンテンツがダウンロードされるのではなく、Web ページ内に表示されます。
解決策
ファイルのダウンロードを強制するには、AJAX を回避し、新しいブラウザ ウィンドウを開いてダウンロードを処理します。次のアプローチを使用できます:
<code class="php"><?php // Create the CSV file based on user input $fileName = 'file.csv'; $downloadFileName = 'newfile.csv'; if (file_exists($fileName)) { header('Location: ' . $fileName); exit; } echo "done"; ?></code>
この PHP コードは CSV ファイルを作成し、それを直接ダウンロードするためにユーザーのブラウザをリダイレクトします。 Location ヘッダーはファイル名を指定し、exit 関数によりそれ以上の処理が発生しないようにし、ファイルの内容が表示されないようにします。
実装
このソリューションを実装するにはの場合は、csv.php ファイルの末尾にある問題のある PHP コードを推奨コードに置き換える必要があります。さらに、ダウンロードを確実に成功させるために、CSV ファイルに必要な読み取りおよびダウンロードの権限を必ず付与してください。
以上がPHP で AJAX を使用してファイルを強制的にダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。