Laravel默认存储路径更改

时间:2020-06-13 14:17:23

标签: laravel

我想使用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”。

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以很轻松地完成此操作

$imageName = $request->file('image_name')->getClientOriginalName();
$directory = 'your/directory/path/';
$imageUrl = $directory . $imageName;
$productImage->move($directory, $imageName);

答案 1 :(得分:1)

它不在文档中,但是如果您检查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');

请记住,如果要存储在不存在的路径中,则必须授予父文件夹创建新目录的权限。

相关问题