Хранилище неправильно связывается в laravel - PullRequest
0 голосов
/ 28 марта 2020

Итак, рассмотрите следующую конфигурацию:

    'registry_logo' => [
        'driver' => 'local',
        'root' => storage_path('app/public/registry_logo/'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

Довольно основы c, да, я уже выполнил php artisan storage:link

Итак, как мне сохранить lo go, который загружается?

public function uploadLogo(UploadedFile $file, RegistrySettings $settings): void {
    $path = $file->store('registry_logo');

    $settings->registry_logo = $path;

    $settings->save();
}

Он находится внутри службы, и первый аргумент - $request->registry_logo, который является файлом (обязательным - поэтому мы можем предположить, что он не равен нулю).

Когда lo go загружен, сгенерированная ссылка выглядит так: http://127.0.0.1:8000/storage/registry_logo/iuKceIG6XC5b8P5YLh3zMRMWbqGaZikaRP6sMWew.png

Так что это нормально, я получаю это через: Storage::disk('registry_logo')->url($registrySettings->registry_logo)])

Примите его не хорошо, давайте посмотрим на два изображения:

enter image description here

Как видите, в связанном хранилище нет папки registry_lo go, что не имеет смысла потому что:

enter image description here

Это там в хранилище. Итак, что происходит? Почему это в хранилище, а не связано должным образом? Я очищал кэш несколько раз, но при загрузке он не создает ссылку registry_lo go на первом изображении.

Иногда, как ни странно, создается папка registry_lo go, но в ней ничего нет. Я испортил конфиг? Я храню его правильно, я знаю, что laravel нравится $request->file('file')->store('disk_name'), но этот способ также работает для загрузки файла, он просто не связывается должным образом, и мне интересно, это я - возможно, но где я могу посмотреть?

Мысли

1 Ответ

1 голос
/ 28 марта 2020

Первый параметр - это путь для загрузки на диск.

Вызовите метод store с путем, по которому вы sh сохраните загруженный файл:

Вы просто должны указать диск, на котором хотите сохранить данные, во втором параметре.

$path = $file->store('', 'registry_logo');

Или вы можете сделать:

$path = Storage::disk('registry_logo')->putFile($file);

Для получения дополнительной информации: https://laravel.com/docs/7.x/filesystem#file -uploads

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...