在 Laravel 中,实现文件下载非常简单。你可以使用 response()->download()
方法来实现这一功能。以下是一个简单的示例:
首先,确保你已经在控制器中引入了必要的命名空间:
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response;
然后,你可以在控制器的方法中添加一个文件下载的逻辑:
public function downloadFile()
{
// 文件路径
$filePath = storage_path('app/public/example.txt');
// 检查文件是否存在
if (!file_exists($filePath)) {
abort(404, 'File not found');
}
// 设置下载时的文件名
$fileName = 'downloaded_example.txt';
// 下载文件
return response()->download($filePath, $fileName);
}
在这个示例中,我们从 storage/app/public
目录下载名为 example.txt
的文件,并在下载时将文件名设置为 downloaded_example.txt
。如果文件不存在,将返回一个 404 错误。
如果你想要从其他存储磁盘下载文件,可以使用 Storage
门面。例如,从 public
磁盘下载文件:
public function downloadFileFromPublicDisk()
{
// 文件路径
$filePath = 'example.txt';
// 检查文件是否存在
if (!Storage::disk('public')->exists($filePath)) {
abort(404, 'File not found');
}
// 设置下载时的文件名
$fileName = 'downloaded_example.txt';
// 获取文件内容
$fileContent = Storage::disk('public')->get($filePath);
// 下载文件
return response($fileContent, Response::HTTP_OK, [
'Content-Type' => Storage::disk('public')->mimeType($filePath),
'Content-Disposition' => 'attachment; filename="' . $fileName . '"',
]);
}
这个示例中,我们从 public
磁盘下载名为 example.txt
的文件,并在下载时将文件名设置为 downloaded_example.txt
。如果文件不存在,将返回一个 404 错误。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。