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 默认存储路径更改的主要内容,如果未能解决你的问题,请参考以下文章

在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹

如何更改默认的Laravel Auth登录视图

Laravel 5 - 更改模型、视图、控制器路径

想修改 laravel 默认登录来检查用户是不是被验证

laravel-5.4 - 错误:从空值创建默认对象

更改 Laravel 中的默认登录路由