首頁 > 後端開發 > php教程 > 如何在 Laravel 中使用 Response::download 下載檔案?

如何在 Laravel 中使用 Response::download 下載檔案?

Mary-Kate Olsen
發布: 2024-11-04 15:20:02
原創
426 人瀏覽過

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

在 Laravel 中使用 Response::download 下載檔案

在 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>
登入後複製

JavaScript:

$(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() 方法響應門面的。標頭結構也略有不同,如下:

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

return response()->download($file, 'filename.pdf', $headers);
登入後複製

以上是如何在 Laravel 中使用 Response::download 下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板