【问题标题】:Retrieving image stored in storage folder检索存储在存储文件夹中的图像
【发布时间】:2016-12-14 09:09:15
【问题描述】:

使用 laravel 5.3,我试图在视图中检索图像。我怎么能做到这一点? 文件夹结构:storage/app/avatard

代码如下:

public function storeAvatar(Request $request, $username)
{
  $user = User::where('name', $username)->first();
  $avatar = $request->file('avatar')->store('avatars');

  $avatar = explode('avatars/', $avatar);



  $user->user_setting()->updateOrCreate(
    ['user_id' => $user->id],
    ['avatar' => $avatar[1]]
  );

  return back();
}

这是图像路径在数据库中的保存方式:

/users/avatar/default.png

【问题讨论】:

    标签: laravel storage laravel-5.3


    【解决方案1】:

    由于存储路径直接对公众不可用,因此您可以实现类似的效果。您需要在这样的路线中提供公共网址。

    在视图中

    <img src="{{route('avatar',$filename)}}" />
    

    或

    <img src="/avatars/{{$filename}}" />
    

    在路由/web.php中

    Route::get('/avatars/{filename}', function ($filename)
    {
        $path = storage_path() . '/avatars/' . $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('avatar');
    

    【讨论】:

    • 这是唯一对我有用的东西,即使我做了php artisan storage:link
    【解决方案2】:

    首先通过输入创建一个存储链接

    php artisan storage:link
    

    然后

    <img src={{ asset('storage/folder_name/image_name') }} />
    

    【讨论】:

      【解决方案3】:

      如果您按照Laravel documentation 将文件存储在storage/app/public 目录中,您可以在Unix/Linux 系统上创建一个符号链接,这样您就可以像在public 目录中一样引用这些文件。

      使用 artisan 命令创建符号链接:

      php artisan storage:link
      

      在您的视图中,您可以使用来引用文件

      {{ asset('storage/path/to/file.png') }}
      

      【讨论】:

        【解决方案4】:

        考虑如果你使用 Homestead,你必须从虚拟机创建符号链接;

        在您的终端中:

        homestead ssh
        

        转到您的项目文件夹:

        cd Code/YOUR_PROJECT
        

        现在你可以执行命令了:

        php artisan storage:link
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-26
          • 1970-01-01
          • 1970-01-01
          • 2020-08-01
          • 2017-09-04
          • 2017-02-23
          • 1970-01-01
          • 2019-11-16
          相关资源
          最近更新 更多