Response::download を使用して Laravel でファイルをダウンロードする
Laravel アプリケーションでは、ビューにボタンが必要になる場合があります。ユーザーは別のビューやルートに移動せずにファイルをダウンロードできます。ただし、Response::download を使用してこの機能を実装するときに発生する一般的な問題がいくつかあります。
問題 1: 存在しないファイル パス
ファイルが間違っているか、ファイルが存在しない場合、Response::download がエラーをスローします。これを解決するには、ファイル パスが正確で、ファイルが指定された場所に存在することを確認します。
問題 2: ダウンロード ナビゲーション
デフォルトでは、ダウンロード時にボタンをクリックすると、ユーザーは新しいビューまたはルートに移動します。これを防ぐには、ダウンロード機能を現在のビューで処理する必要があります。
両方の問題に対処する修正された例を次に示します:
<code class="php">public function getDownload() { // Full physical path to the PDF file $file = public_path() . "/download/info.pdf"; // Define the headers for the response $headers = [ 'Content-Type' => 'application/pdf', ]; // Return the response with the file and headers return response()->download($file, 'filename.pdf', $headers); }</code>
Laravel 5 の更新
Laravel 5 以降では、Response ファサードは非推奨になりました。代わりに、次のコードを使用してください:
<code class="php">return response()->download($file, 'filename.pdf', $headers);</code>
これらの修正により、ダウンロード ボタンはエラーを引き起こすことなく同じビューでファイルを適切にダウンロードします。
以上が別のビューに移動せずに、Response::download を使用して Laravel でファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。