ホームページ > バックエンド開発 > PHPチュートリアル > Response::downloadを使用してLaravelでファイルをダウンロードする方法?

Response::downloadを使用してLaravelでファイルをダウンロードする方法?

Mary-Kate Olsen
リリース: 2024-11-04 15:20:02
オリジナル
454 人が閲覧しました

How to Download Files in Laravel Using Response::download?

Response::download を使用した Laravel でのファイルのダウンロード

Laravel では、Response::download メソッドを使用してユーザーがサーバーからファイルをダウンロードできるようにします。この機能を実装するときに直面する問題の解決策は次のとおりです。

1.ファイル パスの問題:

「ファイル... が存在しません」というエラーは、ファイル パスが正しくないことを示します。これを解決するには、public_path() ヘルパーを使用して、ファイルへの完全な物理パスを指定します:

$file= public_path(). "/download/info.pdf";
ログイン後にコピー

2。ページ ナビゲーションの防止:

別のビューまたはルートへの移動を回避するには、Ajax リクエストを使用してファイルのダウンロードを処理します。こちらです方法:

ViewController:

<button class="btn btn-large pull-right" data-href="/download" id="downloadBtn">
    <i class="icon-download-alt"></i> Download Brochure
</button>
ログイン後にコピー

JavaScr ipt:

$(document).ready(function() {
    $('#downloadBtn').click(function() {
        $.ajax({
            url: $(this).data('href'),
            success: function() {
                alert('File downloaded successfully!');
            },
            error: function() {
                alert('Error downloading file!');
            }
        });
    });
});
ログイン後にコピー

コントローラー:

public function getDownload()
{
    // Same code as before, but now it returns a JSON response
    return response()->json([
        'success' => true,
        'message' => 'File downloaded successfully!'
    ]);
}
ログイン後にコピー

更新Laravel v5.0 の場合:

ソリューションで指摘されているように、Laravel v5.0 では Response ファサードの代わりに response() メソッドを使用できます。以下に示すように、ヘッダー構造も少し異なります:

$headers = [
    'Content-Type' => 'application/pdf',
];

return response()->download($file, 'filename.pdf', $headers);
ログイン後にコピー

以上がResponse::downloadを使用してLaravelでファイルをダウンロードする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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