показать изображение, хранящееся вне публичной папки в файле просмотра - Laravel - PullRequest
0 голосов
/ 25 марта 2019

У меня есть изображения в хранилище / app / uploads / image.jpg, я запускаю команду Php artisan storage:link После этого в моем файле просмотра я использовал это:

img src={{ asset('storage/app/upload/image.jpg') }}

но изображение не показывается. Я не хочу помещать свои изображения в общую папку. Любая помощь будет очень ценной.

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Если вы не хотите хранить свои файлы внутри storage/app/public (это то, что делает символическая ссылка storage:link), то вам нужно создать маршрут:

Route::get('show-image', function() {
   $file = storage_path('app/upload/image.jpg');

   return response()->file($file);
})
0 голосов
/ 25 марта 2019
  1. Вы сказали, что у вас есть изображения в папке uploads, но затем ваш src говорит: upload/.
  2. Вам нужно создать маршрут, где вы можете получить изображения.

     Route::get('images/{filename}', function ($filename)
    {
     $path = app_path('upload') . '/' . $filename;
    
     $file = File::get($path);
     $type = File::mimeType($path);
    
     $response = Response::make($file, 200);
     $response->header("Content-Type", $type);
    
     return $response;
     })->name('route.name');
    

Затем в файле блейда все, что вам нужно сделать, это вызвать маршрут и имя файла изображения, разделенные запятой.

img src={{ route('route.name', 'image.jpg') }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...