Laravel - изображение, сохраненное в папке хранения, не отображается пользователю - PullRequest
0 голосов
/ 17 мая 2018

У меня есть этот код для сохранения изображения в папке хранилища / приложения / загрузки

 $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

Ответы [ 4 ]

0 голосов
/ 25 апреля 2019

Если вы используете homestead в качестве среды на Mac, вам нужно следовать этому

 1. Delete your public/storage folder (if any)
 2. Follow these
     1. ssh into your homestead using below command 
     2. cd ~homestead
     3. vagrant up
     4. vagrant ssh
     5. cd Code/PATH_TO_YOUR_APP_ROOT_DIR
     6. php artisan storage:link

 3. access image like this {{ asset('storage/img/myimage.jpg') }}


0 голосов
/ 17 мая 2018

Вы не можете использовать папку хранилища для этого.Вам необходимо переместить изображения в общую папку для доступа с http.

Попробуйте создать папку вызова изображений в общей папке и загрузить изображение в эту папку.Затем вы можете получить доступ к изображениям следующим образом.

<img src="{{ public_path('images/image-name.png')}}" alt="" />
0 голосов
/ 17 мая 2018

Файловая система хранения Laravel настолько уникальна. Когда вы делаете какую-либо загрузку, она будет загружена в каталог storage/app/public. Итак, как вы можете получить к нему доступ в каталоге public. Что нужно сделать, это создать символическую ссылку командой run:

php artisan storage:link

Таким образом, папка storage/app/public будет связана с public/storage

Просто следуйте документации о том, как поставить и как получить URL файла. Я почти уверен, что пропущенный вами шаг - создание символической ссылки.

Надеюсь, это поможет.

0 голосов
/ 17 мая 2018

Ваша папка хранения недоступна для пользователя.

Вы должны пройти мимо Storage :: url () метод:

Storage::url("/storage/app/{$images->filename}")

Как:

<img src="{{ Storage::url("/storage/app/{$images->filename}") }}" alt="{{ $images->filename }}" />

https://laravel.com/docs/master/filesystem#retrieving-files

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