Laravel 5.2 - Intervation Image调整大小

时间:2016-10-22 09:36:44

标签: php laravel

我试图调整用户个人资料的图片大小,但我有这个错误:

  

Decoder.php第96行中的NotReadableException:无法从给定初始化   二进制数据。

我的控制器

public function updateAvatar(Request $request){

    if ($request->hasFile('image')) {

        $user_id = Auth::user()->id . '.' . $request->file('image')->getClientOriginalExtension();

        // if i insert here: retur $user_id it return: 1.jpg it work well, 
        // my form work well, before i tryed to upload without resize and it work well. 
        // i want save image uploaded with id user and extention 
        // here i'm tryng to resize it, i installed intervation and inserted class 

        $img = Image::make('images/users',$user_id);
        $img->resize(100, 100);
        $img->save('images/users',$user_id);        
        $user = new User;

         $user->where('email', '=', Auth::user()->email)

              ->update(['image' => 'images/users/'.$user_id]);
        return redirect('account')->with('message-success', 'Immagine profilo aggiornata con successo!');

    }else{
        return redirect('account')->with('message-error', 'File non trovato');
    }
    }

3 个答案:

答案 0 :(得分:0)

你试图向Image::make()提供两个参数,但它应该只给一个。{1}}。我想你可能想做,例如Image::make('images/users/'.$user_id)而是?或者无论文件的完整路径是什么。

答案 1 :(得分:0)

试试这个 - 我认为你试图从文本字符串创建一个图像,或者可能是一些不存在的图像。我没有在我面前使用我的代码编辑器,所以我无法测试,让我知道你得到了什么?

public function updateAvatar(Request $request){

    if ($request->hasFile('image')) {

        $user_id = Auth::user()->id . '.' . $request->file('image')->getClientOriginalExtension();

        $img = Image::make($request->file('image'));
        $img->resize(100, 100);
        $img->save('images/users',$user_id);        
        $user = new User;

        $user->where('email', '=', Auth::user()->email)
             ->update(['image' => 'images/users/'.$user_id]);

        return redirect('account')->with('message-success', 'Immagine profilo aggiornata con successo!');

    } else{

        return redirect('account')->with('message-error', 'File non trovato');

    }
}

答案 2 :(得分:0)

public function updateAvatar(Request $request){

    if ($request->hasFile('image')) {

        $user_id = Auth::user()->id . '.' . $request->file('image')->getClientOriginalExtension();

        $base=base64_decode($request['image']);
        $img = Image::make($base)->save($path);
        $img->resize(100, 100);
        $img->save('images/users',$user_id);        
        $user = new User;

        $user->where('email', '=', Auth::user()->email)
         ->update(['image' => 'images/users/'.$user_id]);

        return redirect('account')->with('message-success', 'Immagine profilo aggiornata con successo!');

      } else{

           return redirect('account')->with('message-error', 'File non trovato');

      }
 }

这肯定会解决您的问题..