Как получить доступ к файлам из каталога Storage / App в Laravel - PullRequest
0 голосов
/ 09 мая 2019

Я хочу получить доступ к файлу storage/app/15573877669649.jpg.

Код для загрузки файла

$file = $request->file('cover_image');
$fileName = time().rand(111, 9999).".".$file->getClientOriginalExtension();
Storage::disk('local')->put($fileName, file_get_contents($file));

Код для извлечения файла в blade.php файле

<img src = "{{ URL::to('/').Storage::url($article->coverImage) }}" alt="image">

, который возвращает

http://127.0.0.1:8000/storage/15573877669649.jpg

Я пытался вручную поставить http://127.0.0.1:8000/storage/app/15573877669649.jpg, но он также не работает

Ответы [ 2 ]

1 голос
/ 09 мая 2019
  • Открыть командную строку внутри вашего проекта
  • Введите php artisan storage:link

Ваши файлы теперь будут доступны в "/storage/file.jpg"

/ приводит к public

/storage/ ведет вас к storage/app/public благодаря ссылке

0 голосов
/ 09 мая 2019

По умолчанию, Laravel Storage::('local') недоступен для публики; Storage::('public') будет опубликован командой php artisan storage:link

Итак, для вашего примера кода вы можете сделать это так:

Загрузка файла

$file = $request->file('cover_image');
$fileName = time().rand(111, 9999).".".$file->getClientOriginalExtension();
Storage::disk('public')->put($fileName, file_get_contents($file));

В файле blade.php

<img src = "{{ URL::to('/').Storage::disk('public')->url($article->coverImage) }}" alt="image">

// Or simpler
<img src = "{{ asset("/storage/$article->coverImage") }}" alt="image">

Подробнее о «диске» смотрите в файле конфигурации в /config/filesystems.php и обратитесь к разделу Public Disk официального документа


И не забудьте включить следующие настройки символических ссылок на вашем веб-сервере

// Apache:
<Directory>
    Options FollowSymLinks
</Directory>

// Nginx:
{
    disable_symlinks off;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...