📅  最后修改于: 2023-12-03 14:58:58.299000             🧑  作者: Mango
在 Laravel 中,App\Http\Controllers\Storage
是用来处理存储和访问用户上传的文件的控制器。它的主要作用是管理存储驱动并将文件上传到指定的文件夹中。
Laravel 提供了一些存储驱动,包括:本地存储、Amazon S3、Rackspace、FTP 等。在 config\filesystems.php
文件中定义了各种驱动及其配置信息,可根据项目需要进行调整。
举个例子,在本地存储驱动中,需要指定本地存储路径,如下所示:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
],
在控制器中,可以使用store()
或者put()
方法来实现上传文件。store()
方法默认将文件上传到storage\app\public
文件夹下,也可在参数中设置上传的具体路径。
public function upload(Request $request)
{
$path = $request->file('cover')->store('public/images');
}
put()
方法可以将文件上传到指定的驱动中,在调用时可以传入文件名、文件内容、文件权限等参数,如下所示:
Storage::disk('local')->put('file.txt', 'Hello World', 'public');
在 Laravel 提供了访问上传文件的方法,如url()
、download()
等。url()
方法可以返回文件访问的 URL 地址,用法示例:
$url = Storage::url('file.jpg');
download()
方法可以返回文件下载的 Response 对象,用法示例:
return Storage::download('file.jpg');
最后,需要注意的是,如果驱动使用的是本地存储,需要设置软链接来方便访问,具体的方法可以看官方文档:File Storage#the-public-disk。
以上就是App\Http\Controllers\Storage
的简单介绍。在项目开发中,灵活使用它可以方便地实现文件上传、下载、访问等操作。