📅  最后修改于: 2023-12-03 15:02:35.887000             🧑  作者: Mango
在 Laravel 中,我们可以很容易地实现文件下载的功能。但是默认情况下,下载的文件名称将是原始文件名称。如何更改下载的文件名称呢?下面是一种简单的方法。
首先,我们需要创建一个下载路由。
Route::get('download/file', 'DownloadController@download')->name('download');
这个路由将被用来触发下载操作。我们需要指定一个 DownloadController
来处理这个请求。
在我们的 DownloadController
中,我们需要编写一个方法来响应下载请求。
public function download()
{
$file = public_path('storage/file.pdf');
$headers = [
'Content-Type' => 'application/pdf',
];
$fileName = 'new_file_name.pdf';
return response()->download($file, $fileName, $headers);
}
上面的代码将用新的文件名称来下载 file.pdf
。public_path
指向 Laravel 中的公共文件夹。
$headers
数组用来指定文件的 MIME 类型。在上述的例子中,我们将下载的文件类型设为 application/pdf
。
最后,我们将响应的文件名指定为 $fileName
。这个文件名将被用来命名下载的文件。
现在,我们可以在浏览器中访问 download/file
来下载 file.pdf
文件,并用新的文件名 new_file_name.pdf
来保存它。
到这里为止,我们通过修改响应头信息来实现了 Laravel 下载文件更改名称的功能。我们可以将这个过程构建为一个通用的下载器服务,并集成到我们的 Laravel 应用程序中。