У меня есть этот код для сохранения изображения в папке storage / app / uploads
$image_main = Image::where('property_id', $id)->get();
$file = $request->file('file');
$destinationPath = 'uploads';
$i = 0;
foreach ($file as $file1) {
$i++;
$extension = $file1->getClientOriginalExtension();
$path = $file1->storeAs(
$destinationPath, $i.time().".".$extension
);
Это мой файл с лезвием
@foreach ($image_main as $images)
<img src = "{{"/storage/app/".$images->filename}}
Файл сохраняется в папке storage / app / uploads, но он не отображается пользователю, в нем говорится, что файл не найден. я должен установить что-нибудь в файле filesystems.php
Я использую папку для хранения
Хранилище не является общедоступным, поэтому веб-сервер не может его обслуживать
Хорошо, так какое решение
где мне сохранить файл
Вы должны хранить его в общей папке
Как мне это сделать, @Rob






Ваша папка хранения недоступна для пользователя.
Необходимо пройти методом Хранилище :: url ():
Storage::url("/storage/app/{$images->filename}")
В виде:
<img src = "{{ Storage::url("/storage/app/{$images->filename}") }}" alt = "{{ $images->filename }}" />
Вы не можете использовать для этого папку хранения. Вам нужно переместить изображения в общую папку для доступа из http.
Попробуйте создать папку с изображениями вызовов в общей папке и загрузить изображение в эту папку. Затем вы можете получить доступ к изображениям следующим образом.
<img src = "{{ public_path('images/image-name.png')}}" alt = "" />
Как сохранить их в общей папке
измените переменную $ destinationPath на это - $ destinationPath = '../images/'; Убедитесь, что у вас есть папка с изображениями в общей папке и она доступна для записи.
Файловая система хранения Laravel настолько уникальна. Когда вы делаете какую-либо загрузку, она будет загружена в каталог storage/app/public. Чтобы сделать его доступным в каталоге public, необходимо создать символическую ссылку с помощью команды запуска:
php artisan storage:link
Эта команда привяжет storage/app/public к public/storage.
Просто следуйте документация о том, как разместить и как получить URL-адрес файла. Я почти уверен, что шаг, который вам не хватает, - это создание символической ссылки.
Надеюсь, поможет.
Если вы используете homestead в качестве среды на Mac, вам необходимо выполнить следующие действия:
Следуй этим шагам:
cd ~homesteadvagrant upvagrant sshcd Code/PATH_TO_YOUR_APP_ROOT_DIRphp artisan storage:linkДоступ к образу, подобному этому {{ asset('storage/img/myimage.jpg') }}
вы добавили эту строку в свой файл .env
FILESYSTEM_DRIVER = public
после этого вам нужно запустить эту команду в своем терминале
php artisan storage:link
и если это все еще не работает, вам нужно вызвать каталог хранилища перед вашей ссылкой
<img src = "{{ asset('storage/'.$post->image) }}" width = "120px" hight = "120px" alt = "">
Да, очень важно добавить FILESYSTEM_DRIVER = public, если этот код фрагмента отсутствует, изображения не появятся ...
Помимо решения здесь, имейте в виду следующее:
Хранилище в laravel говорит символическая ссылка - такого файла нет
Laravel - Как вернуть символическую ссылку локального хранилища и обновить
Попробуйте этот метод, он будет работать на 100%.
Сначала создайте символическую ссылку: php artisan storage:link
Загляните в общую папку, где хранятся все ваши изображения, и в src укажите имена этих папок и, наконец, свое имя изображения из базы данных.
Пример :
<img src = "/images/posts/{{$post->featured_image}}">
ИЛИ ЖЕ
Пример: полный путь для отображения изображения с использованием ссылки в браузере
<img src = "{{asset('/images/posts/'.$post->featured_image)}}">
Если вы используете публичное хранилище или хранилище S3, вы можете использовать
<img src = "{{Storage::url("/storage/app/".$images->filename)}} />