从 Laravel 下载文件

Posted

技术标签:

【中文标题】从 Laravel 下载文件【英文标题】:Download files from Laravel 【发布时间】:2019-03-18 00:11:38 【问题描述】:

我想在 Laravel 中创建端点,我可以在 Linux 中使用它来下载 zip 存档。

我创造了:

public function download_templates()

    return response()->file(base_path() . '/sites/templates.zip');

但是当我使用时:

wget http://linktopage.com/api/download_templates

结果我收到了端点的 html 代码。

有人有想法吗?

【问题讨论】:

为什么不使用 laravel Storage::download($filepath);? Download files in laravel using Response::download的可能重复 【参考方案1】:

如果您使用的是 5.*,请使用此代码。*

return response()->download(public_path('/sites/templates.zip'));

另外,我把base_path()改成了public_path(),所以你必须把文件放到Public,如果不是你可以在上面的代码中使用base_path()而不是public_path()

【讨论】:

【参考方案2】:

要初始化文件下载响应应该包含标头,表明它是附件,否则浏览器将打印内容。

根据 laravel docs "file" 方法,如果您只想输出文件内容而不下载。对于下载,有一种强制下载的方法“下载”。

【讨论】:

以上是关于从 Laravel 下载文件的主要内容,如果未能解决你的问题,请参考以下文章

从服务器 Laravel 和 reactjs 下载文件

从带有文件系统的 AWS S3 下载的 Laravel 文件已损坏

如何从 Laravel 8 中的存储应用程序文件夹下载文件

如何在前端使用 Angular 从 PHP Laravel API 下载 zip 文件?

无法通过 Vue.js(Axios 帖子)从 Laravel 后端下载文件(pdf)

Laravel 存储文件未下载(未找到文件)