从Laravel下载文件

时间:2018-10-12 18:10:39

标签: php linux laravel wget endpoint

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

我创建了:

public function download_templates()
{
    return response()->file(base_path() . '/sites/templates.zip');
}

但是当我使用时:

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

结果我收到端点的HTML代码。

有人有主意吗?

2 个答案:

答案 0 :(得分:1)

要初始化文件下载响应,应包含指示其附件的标题,否则浏览器将打印内容。

根据laravel docs,“ file”方法用于仅输出文件内容而无需下载的情况。对于下载,有一种方法“下载”会强制下载。

答案 1 :(得分:0)

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

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

另外,我将base_path()更改为public_path(),因此您必须将文件置于“公开”状态,否则,您可以在代码中使用base_path()代替public_path()以上。