在 Laravel 中,你可以使用多种方法来管理文件下载
首先,在 routes/web.php
文件中创建一个新的路由,用于处理文件下载请求。
Route::get('download/{filename}', 'FileController@download');
使用以下命令创建一个名为 FileController
的新控制器:
php artisan make:controller FileController
在 FileController
中添加一个名为 download
的方法,用于处理文件下载。这个方法接收一个参数 $filename
,表示要下载的文件名。
public function download($filename)
{
// 检查文件是否存在
$file_path = storage_path('app/public/files/' . $filename);
if (!file_exists($file_path)) {
abort(404, 'File not found');
}
// 设置文件头信息
$headers = [
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment; filename=' . $filename,
'Content-Transfer-Encoding' => 'binary',
];
// 返回文件响应
return response()->file($file_path, $headers);
}
将文件存储在 storage/app/public/files
目录中。你可以将文件上传到这个目录,或者将其移动到这个目录。确保这个目录具有正确的权限,以便 Web 服务器可以访问它。
为了方便地从公共目录访问文件,你需要在 public
目录中创建一个符号链接,指向 storage/app/public
目录。运行以下命令:
php artisan storage:link
现在,你可以通过访问 /storage/files/{filename}
URL 来下载文件。将 {filename}
替换为实际的文件名。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。