Laravel无法显示图像

时间:2017-07-22 14:25:51

标签: php laravel

我有一个脚本,用户可以上传带有客户端ID的照片。照片位于storage/app/public和db中的文件名。然后我得到名字,并尝试显示照片或文件,但我不能。 这是我的代码:

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('storage/app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

这是控制器:

public function file($id)
{
    $client = Client::findOrFail($id);
    return View::make('file', compact('client'));
}

file.blade.php

<img src="{{ public_path($file_name) }}" />

和控制台日志:

enter image description here

如何显示文件?

2 个答案:

答案 0 :(得分:2)

确保您已创建从存储到公共的符号链接。

要创建符号链接,您可以使用storage:link Artisan命令:

php artisan storage:link

您可以像这样访问存储网址以显示图片:

<img src="{{ url('/') . Storage::url($file_name) }}">

了解详情:https://laravel.com/docs/5.4/filesystem#the-public-disk

答案 1 :(得分:0)

  

公用磁盘适用于可公开访问的文件。默认情况下,public磁盘使用本地驱动程序并将这些文件存储在storage/app/public中。要通过网络访问它们,您应创建从public/storagestorage/app/public的符号链接。

     

要创建符号链接,您可以使用storage:link Artisan命令:

php artisan storage:link

https://laravel.com/docs/5.4/filesystem#the-public-disk