2017-01-16 116 views
0

我遇到了上傳圖片的問題。我有一個默認的圖像給所有的用戶。當我選擇其他圖像來更改默認的圖像時,它不起作用。不知何故$請求沒有被識別。 UserController代碼:請求無法識別上傳圖片

use App\User; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use Auth; 
use Image; 

public function updateAvatar(Request $request){ 
    $user = User::find(Auth::user()->id); 
    if ($request->hasFile('avatar')){ 
     $avatar = $request->file('avatar'); 
     $filename=time() . '.' . $avatar->getClientOriginalExtension(); 

     if($user->avatar!='default.jgp'){ 
      $file = 'uploads/avatars/' . $user->avatar; 
      if(File::exists($file)){ 
       unlink($file); 
      } 
     } 
     Image::make($avatar)->save(public_path('/uploads/avatars/' . $filename)); 
     $user= Auth::user(); 
     $user->avatar=$filename; 
     $user->save(); 
    } 
    return view('pages.AfterLogin.Entidade.users.profile')->withUser(Auth::user()); 
} 
+0

你的表單是什麼樣的? – MMMTroy

+0

確保您使用PUT/PATCH方法 –

+0

我有交方法@LeaTano –

回答

0

我假設你的方法是正確的。試試這個:

use App\User; 
use Illuminate\Http\Request; 
use Auth; 
use Image; 

public function updateAvatar(Request $request){ 
    $user = User::find(Auth::user()->id); 
    if ($request->hasFile('avatar')){ 
     $avatar = $request->file('avatar'); 
     $filename=time() . '.' . $avatar->getClientOriginalExtension(); 

     if($user->avatar!='default.jpg'){ 
      $file = 'uploads/avatars/' . $user->avatar; 
      if(File::exists($file)){ 
       unlink($file); 
      } 
     } 
     Image::make($avatar)->save(public_path('/uploads/avatars/' . $filename)); 
     $user= Auth::user(); 
     $user->avatar=$filename; 
     $user->save(); 
    } 
    return view('pages.AfterLogin.Entidade.users.profile')->withUser(Auth::user()); 
} 
+0

什麼也沒有發生:(@SSuhat –

+0

@JoãoCosta你確定你的表單url是正確的嗎?嘗試張貼你的路線文件和表單標籤 – ssuhat

+0

路線文件: '路線::得到( '/ profile文件', 'UsersController @指數'); 路線::後( '/ profile文件', 'UsersController @ updateAvatar');' 表: '<表單的enctype = 「多部分/格式數據」 動作= 「輪廓」 的方法= 「POST」> ' @SSuhat –

0

use dd($ request);並顯示截圖並顯示錶單。

+0

dd不起作用。形式:https://jsfiddle.net/w9xm91r1/ @Ravi –

+0

Ravi

+0

我試過了。 multipart/form-data和x-www-form-urlencoded @Ravi –

0

我想你應該試試這個::

use App\User; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use Auth; 
use Image; 
use Illuminate\Support\Facades\Input; 

public function updateAvatar(Request $request){ 
    $user = User::find(Auth::user()->id); 
    if ($request->hasFile('avatar')){ 
     $avatar = Input::file('avatar'); 
     $filename=time() . '.' . $avatar->getClientOriginalExtension(); 

     if($user->avatar!='default.jgp'){ 
      $file = 'uploads/avatars/' . $user->avatar; 
      if(File::exists($file)){ 
       unlink($file); 
      } 
     } 
     Image::make($avatar)->save(public_path('/uploads/avatars/' . $filename)); 
     $user= Auth::user(); 
     $user->avatar=$filename; 
     $user->save(); 
    } 
    return view('pages.AfterLogin.Entidade.users.profile')->withUser(Auth::user()); 
} 

希望這對你的工作!

+0

它沒有工作:(@AddWeb解決方案私人有限公司 –