【问题标题】:Cannot write to directory using Faker image无法使用 Faker 映像写入目录
【发布时间】:2020-07-06 11:43:01
【问题描述】:

我想使用工厂通过 Faker 设置测试数据。但是当我尝试将图像添加到模型时

        "images" => $faker->image('public/storage/images',400,300, null, false),

返回错误

无法写入目录“public/storage/images”

甚至以为我跑了

php artisan storage:link

如何解决这个问题?顺便说一句,我正在使用 Ubuntu。

【问题讨论】:

    标签: laravel faker


    【解决方案1】:

    您正在尝试写入目录public/storage/images,这是相对于您服务器的根目录的,如/public/storage/images

    你要写入你应用的存储目录,比如:

    $faker->image(storage_path('images'),400,300, null, false)
    

    或者直接到公用文件夹:

    $faker->image(public_path('images'),400,300, null, false)
    

    【讨论】:

    • 在 Laravel 8 中我得到了同样的错误,但是当执行Storage::makeDirectory('images'); 时如何更改为public_path()
    【解决方案2】:

    看起来用户组或系统无法写入文件夹。 php artisan storage:link 只创建指向公用文件夹的符号链接。

    您需要更新存储文件夹的权限以允许创建文件。检查运行代码的用户组是否具有写入存储文件的权限,以及存储文件是否具有适当的 CHMOD 权限

    chmod -R 755 storage

    【讨论】:

    猜你喜欢
    • 2021-08-13
    • 2018-04-30
    • 2012-04-14
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2014-07-15
    相关资源
    最近更新 更多