Как отобразить изображение с помощью Laravel 5.8? - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь отобразить изображение, хранящееся в моем регионе.Эти загруженные файлы находятся в папке хранения

Storage folder

Я использую следующий код для отображения изображения

@foreach($publications as $p)
    <div class="card" style="width: 18rem;">
        <img class="card-img-top" src="{{URL('public/storage/app/{$p->file_name}')}}" alt="{{$p->file_name}}" />
      <div class="card-body">
        <p class="card-text">{{$p->description}}</p>
      </div>
    </div>
@endforeach

Но я получил:

enter image description here

что не так?

РЕДАКТИРОВАТЬ 1

Я использую php artisan storage:link, консоль отображается

The [public/storage] directory has been linked.

Но она все еще не работает

Ответы [ 2 ]

1 голос
/ 24 июня 2019

php artisan storage:link создает символическую ссылку на /storage/app/public

Но похоже, что ваши файлы находятся в /storage/app/files попробуйте переместить файлы в общую папку.

вы можете использовать ресурспомощник, чтобы показать файл {{ asset("storage/{$p->file_name}") }}

1 голос
/ 24 июня 2019

Сначала вам нужно сделать

php artisan storage:link

, чтобы папка хранилища, к которой wepapp не мог получить доступ, обычно связывалась с вашей общедоступной папкой, чтобы ваше приложение могло обращаться к изображениям, как будто онинаходятся в общедоступной папке, но они будут храниться в папке хранения, тогда вы должны поставить что-то вроде этого, чтобы отобразить изображение

я думаю, что это будет так

    <img src="/storage/2/{{$p->file_name}}"/>

вы можете отредактировать путь к пути в вашем приложении, если этот путь не сработал

надеюсь, он будет работать с вами

Редактировать, которым я поделюсь свы пример из моего кода в миграции миграция пользователей

$table->string('image');

контроллер

$imageName = time().'.'.request()->image->getClientOriginalExtension();
        request()->image->move(public_path('userpicture'), $imageName);
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'image' => $imageName,
            'password' => Hash::make($data['password']),
        ]);

обратите внимание, что метод создания, который я использую здесь, работает только тогда, когда вы заполняете эти файлы заполняемымив модели пользователя, так что не берите в голову, что вы можете использовать все, что вы хотите в части хранения данных, но сосредоточитесь на этих трех строках

$imageName = time().'.'.request()->image->getClientOriginalExtension();
            request()->image->move(public_path('userpicture'), $imageName);

                'image' => $imageName,

, поскольку вы можете видеть, что функция перемещения перемещает изображение к публикепапку и положить его в папку userpicture, а затем в последней строке сохранить имя изображения в базе данных, чтобы я мог получить к нему доступ позже для отображения изображения

, а затем я мог просто сделать это, чтобы отобразить изображение

<img class="img-responsive img-rounded" src="{{ asset('userpicture/1561335133.jpg') }}" alt="User picture">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...