在视图文件中显示存储在公用文件夹外部的图像-Laravel

时间:2019-03-25 13:16:20

标签: laravel laravel-5

我在storage / app / uploads / image.jpg中有图像,我运行命令 Php artisan storage:link之后,我在查看文件中使用了

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

,但未显示图像。我不想将图像放在公用文件夹中。任何帮助都是非常可取的。

2 个答案:

答案 0 :(得分:1)

如果您不想将文件存储在storage/app/public内(这就是storage:link符号链接的作用),那么您需要创建一条路由:

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

   return response()->file($file);
})

答案 1 :(得分:0)

  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') }}