ホームページ >バックエンド開発 >PHPチュートリアル >PHP でファイルをダウンロードした後にユーザーをリダイレクトするにはどうすればよいですか?
PHP でのダウンロードとリダイレクト用のファイルの生成
Web アプリケーションでは、多くの場合、サーバー上にファイルを生成し、ユーザーにダウンロードを促す必要があります。彼ら。 PHP では、ヘッダーを使用してこれを簡単に実現できます。ただし、ファイルが生成され、ダウンロード プロンプトが表示された後に、ユーザーを新しいページにリダイレクトする必要があるシナリオが発生する場合もあります。
ファイルのダウンロード後のリダイレクトの課題
指定したコード スニペットは、CSV ダウンロードを強制するために必要なヘッダーを正常に設定します。ただし、最後にリダイレクト ヘッダー ("header("Location: /newpage")") を追加すると、期待どおりに機能しません。これは、コンテンツがエコーされるときにヘッダーがすでに送信されており、コンテンツがブラウザーに完全に送信されるまでは後続のアクション (リダイレクトなど) を実行できないためです。
代替アプローチ
ダウンロード プロンプトの後にリダイレクトするのではなく、ダウンロードが正常に開始されたことを通知できる「最終」ページにユーザーをリダイレクトすることをお勧めします。この最後のページでは、「ダウンロードが自動的に開始されるはずです。そうでない場合は、ここをクリックしてダウンロードしてください。」などのメッセージをユーザーに提供できます。
ダウンロードを自動的に開始
するには最終ページにリダイレクトした後、自動的にダウンロードを開始するには、次のテクニックを使用できます:
実装例
ユーザーをリダイレクトしてダウンロードを自動的に開始する方法の例を次に示します。
header('Content-Type: application/csv'); header("Content-length: " . filesize($NewFile)); header('Content-Disposition: attachment; filename="' . $FileName . '"'); echo $content; // Set a redirect header to the final page header("Location: /final-page.php"); exit();
<!-- final-page.php --> Your download should start automatically. If not, click <a href="create_csv.php">here</a> to download.
このアプローチにより、ユーザーを別のページにリダイレクトでき、次のことが保証されます。ファイルのダウンロードは手動介入を必要とせずにすぐに開始されます。
以上がPHP でファイルをダウンロードした後にユーザーをリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。