从 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 下载文件的主要内容,如果未能解决你的问题,请参考以下文章
从带有文件系统的 AWS S3 下载的 Laravel 文件已损坏
如何在前端使用 Angular 从 PHP Laravel API 下载 zip 文件?