【问题标题】:Override Laravel Voyager default Image Upload Path覆盖 Laravel Voyager 默认图片上传路径
【发布时间】:2024-04-21 20:35:01
【问题描述】:

Voyager 默认将图片上传到 storage/app/public/posts 文件夹,以获取帖子的特色图片。 我想将其更改为我的公用文件夹中的自定义文件夹。

我如何做到这一点?

提前致谢。

【问题讨论】:

  • 就我所见的 Voyager 而言,您无法更改图像目录,因为它完全取决于 BREAD 的 slug,例如,您的最终 slug 是 posts 的目录图片将是posts.'/'.date('F').date('Y').'/',因此您无法在不影响 voyager 供应商代码的情况下实现这一点,请尝试与 voyager 人员记录 github 更改请求,他们可能会在不久的将来提供它。

标签: image laravel path upload voyager


【解决方案1】:

打开config/filesystems.php 文件并检查this 部分。再添加一个键,例如voyager

'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'),
    ],
    'voyager' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),// change here something specific to your application need
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
],

然后打开 config/voyager.php file 并设置该密钥 ('voyager') 而不是像这样的“公共”:

'storage' => [
    'disk' => 'voyager',
],

【讨论】:

    【解决方案2】:

    转到 config/filesystems.php 并更改新文件夹的根目录和 URL 密钥。看下面的例子

        'public' => [
            'driver' => 'local',
            'root' => public_path().'/app', //Add new folder into public folder called app
            'url' => env('APP_URL').'/public/app', //change get path for image 
            'visibility' => 'public',
        ],
    

    【讨论】: