Laravel存储路径问题

时间:2017-03-26 13:25:26

标签: laravel

我遇到了用户头像的问题。我将它们存储在storage\app\public\avatars\user_id_1_username\useravatar.jpg

在我的刀片视图中,我执行此操作:<img src="{{asset('storage/avatars/user_id_'.Auth::user()->id.'_'.Auth::user()->first_name.'/'.Auth::user()->avatar)}}" width="150px" alt="User Image">

这个设置在localhost中完全正常,但在我的共享ftp主机上这不起作用,我得到500内部服务器错误。有人有建议我该如何解决这个问题?

修改

如果我写<img src="{{asset('storage/app/public/avatars/user_id_'.Auth::user()->id.'_'.Auth::user()->first_name.'/'.Auth::user()->avatar)}}" width="150px" alt="User Image">

然后它在共享主机中工作,但不在我的localhost开发中。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这就是我解决它的方法。

我创建了一个帮助函数,以便将文件放在正确的路径中:

function showProfile(){
  $path = storage_path('app/public/avatars/user_id_'.Auth::user()->id.'_'.Auth::user()->first_name.'/'.Auth::user()->avatar);

  if (!\File::exists($path)) {
      $path = storage_path('app/public/avatars/avatar.png');
      $file = \File::get($path);
  }

  $file = \File::get($path);

  return $file;
}

然后在我的刀片中我使用了这个:

 <img src="data:image/jpeg;base64,{{ base64_encode(showProfile()) }}" width="150px" alt="User Image">

我不知道这是否是最有效的方式,但它到目前为止还有效。