本文共 1312 字,大约阅读时间需要 4 分钟。
Laravel 提供了强大的文件系统配置,允许开发者灵活管理文件存储位置和访问方式。本文将详细说明如何配置文件系统并确保上传内容能够公开访问。
文件系统的配置通常位于文件 config/filesystems.php
中。配置的主要内容包括以下几个部分:
return [ 'default' => env('FILESYSTEM_DRIVER', 'local'), //默认存储驱动,环境变量可覆盖 'cloud' => env('FILESYSTEM_CLOUD', 's3'), //云端存储配置 'disks' => [ 'local' => [ 'driver' => 'local', //本地存储驱动 'root' => storage_path('app'), //默认存储目录 ], 'public' => [ 'driver' => 'local', //同样使用本地驱动 'root' => storage_path('app/public'), //公开文件夹路径 'url' => env('APP_URL') . '/storage', //访问路径 'visibility' => 'public', //文件可见性设置 ], 's3' => [ 'driver' => 's3', //S3驱动配置 'key' => env('AWS_KEY'), //访问S3的凭据 'secret' => env('AWS_SECRET'), //S3秘密凭据 'region' => env('AWS_REGION'), //S3区域设置 'bucket' => env('AWS_BUCKET'), //S3存储桶名称 ], ],];
通过运行命令 php artisan storage:link
,可以将 public/storage
目录与 storage/app/public
同步,使其内容公开访问。这样,浏览器可以直接访问存储在公共文件夹中的文件资源。
使用 Storage::disk('local')
将文件存储到默认目录。当使用开启了公开访问的存储配置时,即使文件不在网页服务器中,你仍能通过生成正确 URL 方便用户访问。
例如,要将文件存储到 storage/app
中,可以使用以下方法:
Storage::disk('local')->put('file.txt', 'Contents');
这样操作后,文件将存储在 storage/app/file.txt
中,适合需要通过前端应用访问的场景。
转载地址:http://rkgyk.baihongyu.com/