Изображения не отображаются на веб-странице (PHP с Laravel), другой код работает на 100% нормально

Мой код работает нормально и показывает содержимое, хранящееся в базе данных. Но не показывать изображения, которые хранятся в: C:\xampp\htdocs\Task_List\storage\app\fileToUpload

DisplayDataController.php

class DisplayDataController extends BaseController
{
public function displaydata()
{

    $users = DB::table('users')->select('id','email','password','pic')->get();
    return view('displaydata',['users'=> $users]);
}
}

веб.php

Route::get('/', 'DisplayDataController@displaydata' );

displaydata.blade.php

<html>

    <head>
        <title>
            Display Data
        </title>
    </head>
    <body>
    <fieldset>

    <legend>User Records</legend>
    <table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Password</th>        
            <th>Image</th>        
        </tr>
    </thead>
    <tr>
        @foreach($users as  $user)
            <td>{{$user->id}}</td>
            <td>{{$user->email}}</td>
            <td>{{$user->password}}</td>
            <td>
           <!-- <img src = "{{ url('storage/app/fileToUpload/'.$user->pic) }}" style = "height:100; width:100" />; -->


           <img src = "{{ url('storage/app/fileToUpload')}}{{$user->pic}}" style = "height:100; width:100" /> 

            </td>
            </tr>        
        @endforeach
    <input type = "hidden" value = {{csrf_token()}} name=_token>
    </table>
    </body>
</html>

Проблема только с:

<img src = "{{ url('storage/app/fileToUpload')}}{{$user->pic}}" style = "height:100; width:100" /> 

проверьте этот ответ. каталог хранения недоступен напрямую. используйте маршрут, чтобы вернуть ответ файла для изображений, хранящихся в папке хранилища. stackoverflow.com/a/41138726/1409707

aimme 23.07.2019 12:31

@aimme в моей БД изображения хранятся как: fileToUpload/1pZn1fwL0pldyfgvDPT4giLPkb662OL5B3kjs.jpeg

user11393121 23.07.2019 12:48

если да, то мой ответ будет работать. просто нужно удалить префикс fileToUpload из строки. редактирование ответа.

aimme 23.07.2019 12:50

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

aimme 23.07.2019 12:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
465
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Пытаться:

<img src = "{{ url('storage/app/fileToUpload/'.$user->pic)}}" style = "height:100; width:100" />

изменить , на . ( . $пользователь->рис )

Ghiffari Assamar 23.07.2019 12:26

@zahid не работает

user11393121 23.07.2019 12:26

тоже не работает @GhiffariAssamar

user11393121 23.07.2019 12:27

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

Ввиду

<img src = "{{route('images.show',$user->pic)}}" />

или

<img src = "/images/{{$user->pic}}" />

В маршрутах/web.php

Route::get('/images/{filename}', function ($filename)
{
    $path = storage_path() . '/app/' . $filename;

    if (!File::exists($path)) abort(404);

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);
    return $response;
})->name('images.show');
Ответ принят как подходящий

вам нужно создать символическую ссылку, запустив ее в командной строке

php artisan storage:link

поэтому для доступа к лезвию, как это

<img src = "{{ asset('storage/'.$user->pic)}}" style = "height:100; width:100" />

читайте здесь для более подробной информации документация

Уже работал с ним. Не работает @Ghiffari

user11393121 23.07.2019 12:35

В моей БД изображения хранятся как: fileToUpload/1pZn1fwL0pldyfgvDPT4giLPkb662OL5B3kjs.jpeg

user11393121 23.07.2019 12:51

Другие вопросы по теме