laravel Storage自定义上传文件路径
2022年6月23日15:30:20
之前文件上传都是自己使用splobject自己写的,但是发现Storage提供不少好用的方法,就尝试了一下,发现默认配置
config/filesystems.php
'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', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), ], 'uploads' => [ 'driver' => 'local', 'root' => public_path('uploads'), 'url' => public_path('uploads'), 'visibility' => 'public', ], ],
uploads是最后新增的部分
使用的方法,就可以按照正常使用了
默认访问路径是public/uploads
如果你使用URL::to
'url' => \Illuminate\Support\Facades\URL::to('uploads'),
使用全空间命名会报错 A facade root has not been set.
https://learnku.com/docs/laravel-cheatsheet/8.x
Storage可以看到大部分使用问题
$fileContents = 333333; Storage::disk('uploads')->put('avatars/2', $fileContents); p(Storage::disk('uploads')->url('avatars/2'));
输出
D:\phpstudy_pro\WWW\yida_api\public\uploads/avatars/2
最好用的应该是ftp sftp oss支持