使用laravel 5.4进行图像检索失败

时间:2017-03-21 18:22:05

标签: php laravel laravel-5.4

我正在尝试为我的应用存储和显示图片。图像存储正常但无法显示。 首先,我使用命令创建了符号链接:php artisan storage:link
config / filesystem.php看起来像:

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

存储图片:

 if($request->hasFile('avatar'))
{
    $path = $request->file('avatar')->store('avatars'); 
    //$path=avatars/generated_image_name.extension
    $user->avatar=$path;
    $user->save();
}
//image storing under: (../storage/app/avatars)  

显示要查看的图像:

 <img src="storage/{{$user->avatar}}"
      alt="no image!!"
      class="img-circle" 
      style="width:150px;height:150px;">

尝试src="storage/app/{{$user->avatar}}"&amp; src="{{$user->avatar}}" 但无法获取图像。不明白我做错了什么。

1 个答案:

答案 0 :(得分:0)

讨厌成为那个人,但是你读过这些文档。您需要创建从public/storagestorage/app/public的符号链接。

  

The Public Disk

     

公共磁盘用于公开发布的文件   无障碍。默认情况下,公共磁盘使用本地驱动程序和   将这些文件存储在storage/app/public中。使它们可访问   从网上,你应该创建一个public/storage的符号链接   到storage/app/public。这个惯例将公开   一个目录中的可访问文件,可以轻松共享   使用零停机时间部署系统时的部署   Envoyer

     

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

php artisan storage:link

修改

我再次查看文档或者阅读它们:)。

我认为您的默认存储空间为local而非public。在config/filesystems.php中查看默认驱动程序。

Storing Files&gt;文件上传&gt;指定磁盘

或尝试这样的事情。

if($request->hasFile('avatar'))
{
    $path = $request->file('avatar')->store(
      'avatars/'.$request->user()->id, 'public'
    ); 
    //$path=avatars/generated_image_name.extension
    $user->avatar=$path;
    $user->save();
}