Laravel 默认存储路径更改
Posted
技术标签:
【中文标题】Laravel 默认存储路径更改【英文标题】:Laravel default Storage path change 【发布时间】:2020-06-13 14:17:23 【问题描述】:我想使用 laravel 文件 storeAs 方法将图像保存在主公用文件夹中。有没有办法改变使用这段代码的路径?
$path = $request->img->storeAs('images', 'filename.jpg');
我已经尝试将 filesystems.php 中的新磁盘添加到此
'my' => [
'driver' => 'local',
'root' => public_path('app'),
'visibility' => 'public',
],
并使用此代码进行存储
Storage::disk('my')->put('filename.jpg', $request->img);
但是使用上面的代码,它会创建新的文件夹名称'filename.jpg'并使用随机名称将图像保存在该文件夹中。但我想将该图像名称保存为“filename.jpg”。
谢谢。
【问题讨论】:
【参考方案1】:你可以很容易地做到这一点
$imageName = $request->file('image_name')->getClientOriginalName();
$directory = 'your/directory/path/';
$imageUrl = $directory . $imageName;
$productImage->move($directory, $imageName);
【讨论】:
【参考方案2】:它不在文档中,但是如果您检查 storeAs
方法实现 (https://github.com/laravel/framework/blob/7.x/src/Illuminate/Http/UploadedFile.php#L80),您会发现可以将一组选项作为第三个参数传递。 disk
键用于设置应使用的女巫。所以你的代码是:
$path = $request->img->storeAs('images', 'filename.jpg', ['disk' => 'my');
请记住,如果您存储在不存在的路径中,则必须授予父文件夹创建新目录的权限。
【讨论】:
以上是关于Laravel 默认存储路径更改的主要内容,如果未能解决你的问题,请参考以下文章