📅  最后修改于: 2023-12-03 14:43:46.657000             🧑  作者: Mango
在 Laravel 中,我们可以使用 response()
函数返回文件内容并指定文件类型,从而实现从公共文件夹下载文件的功能。
首先,我们需要将要下载的文件放到 Laravel 应用的公共文件夹中,这样才能保证文件能够被访问到。
默认情况下,Laravel 的公共文件夹是 public
文件夹,该文件夹中的文件都可以通过浏览器来访问。
接下来,我们需要创建一个路由来处理下载请求。在 Laravel 中,我们可以在 routes/web.php
文件中定义路由。例如,我们可以定义一个路由来下载名为 example.txt
的文件:
Route::get('/download', function () {
$pathToFile = public_path('example.txt');
return response()->download($pathToFile);
});
上面的代码中,我们使用 public_path()
函数来获取文件在公共文件夹中的路径,并将其传递给 response()->download()
函数。response()
函数用于创建一个下载响应,并设置响应的头信息,告诉浏览器这是一个要下载的文件。
现在,我们可以通过浏览器访问 http://localhost/download
,将会开始下载名为 example.txt
的文件。
上面的例子是最简单的从公共文件夹下载文件的方法,但 response()
函数还提供了一系列选项,用于控制文件下载的行为,例如:
return response()->download($pathToFile, 'custom-name.txt');
return response()->download($pathToFile)->setStatusCode(200);
return response()->download($pathToFile)->header('Content-Type', $type);
return response()->download($pathToFile)->deleteFileAfterSend(true)->setMaxAge(3600);
等等。
具体选项可以查看 Laravel 文档。
在本文中,我们学习了如何在 Laravel 中从公共文件夹下载文件。通过 response()
函数,我们可以方便地创建下载响应,并对下载行为进行控制。