从 Laravel 下载文件

Download files from Laravel

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

我创建了:

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

但是当我使用时:

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

结果我收到 HTML 端点代码。

有人有想法吗?

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

根据laravel docs "file" 方法用于您只想输出文件内容而不下载的情况。对于下载,有一种强制下载的方法"download"。

如果您使用 5,只需使用此代码。*

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

另外,我把base_path()改成了public_path(),所以你必须把文件放在Public里,如果没有你可以用base_path()代替public_path() 在上面的代码中。