2017-01-17 192 views
0

我在Laravel中使用Image Intervention軟件包,無法顯示我的個人資料圖像。問題是,瀏覽器無法加載資源Laravel - 無法加載資源

localhost:8000/uploads etc. 

所有文件都保存公共文件夾中:

public/uploads 

我的觀點:

<div class="row"> 
    <div class="col-md-2 "> 
     <img src="uploads/{{ $user->avatar }}"> 
    </div> 
</div> 

控制器:

class UserController extends Controller 
{ 
    public function profile() 
    { 
     return view ('user.profile', array('user'=>Auth::user())); 
    } 

    public function update(Request $request) 
    { 
     if($request->hasFile('avatar')) 
     { 
      $avatar = $request->file('avatar'); 
      $filename = time() . '.' . $avatar->getClientOriginalExtension(); 
      Image::make($avatar)->resize(300, 300)->save(public_path('/uploads/avatar' . $filename)); 
      $user = Auth::user(); 
      $user->avatar = $filename; 
      $user->save(); 
     } 
     return view('user.profile',array('user'=>Auth::user())); 
    } 
} 

我正在使用Windows迪看到保存在我的文件夾公共/上傳這些文件,但我不能顯示它

問候

+3

您保存到'/上傳/ avatar'。$ filename',但是當你尋找這個文件時,你似乎在尋找'/ uploads/$ filename'。你能檢查一下嗎? –

+0

究竟是什麼錯誤?有沒有XDebug給你的線? – BrokenBinary

+0

當我保存到/ uploads /頭像'。$ filename它節省了我上傳文件夾名稱頭像$文件名 – tomczas

回答

1

在你的控制器類改變這一行:

$user->avatar = $filename; 

這樣:

$user->avatar = 'avatar' . $filename; 
+0

@Romain下面的答案也可以。 – BrokenBinary

2

當您保存圖像,「上傳/阿凡達」後添加/

save(public_path('/uploads/avatar/' . $filename));

這應該解決命名問題。然後在HTML中在「uploads /」後面添加「avatar /」,就像保存到「upload/avatar」文件夾一樣。

那麼你的看法是這樣的:

<div class="row"> 
    <div class="col-md-2 "> 
     <img src="uploads/avatar/{{ $user->avatar }}"> 
    </div> 
</div>