laravel 5.7中的PostTooLargeException

时间:2019-04-10 06:47:14

标签: php laravel

当我尝试上传8.54 mb图片时会生成错误

  

Illuminate \ Http \ Exceptions \ PostTooLargeException没有消息

我真正想做的是在上传之前进行验证,并显示一条自定义错误消息,提及l图像容量太大而无法上传

这是我的控制器 ProfileController.php

public function update_avatar(Request $request){ 
         $request->validate([

            'avatar' => 'required|image|max:2048',

      ]);


        $user = Auth::user();
        Storage::delete('/avatars/'.$user->avatar); 

        $avatarName = $user->id.'_avatar'.time().'.'.request()->avatar->getClientOriginalExtension();

        $request->avatar->storeAs('avatars',$avatarName);

        $user->avatar = $avatarName;    
        $user->save();


             return back()->with('success','You have successfully upload image.');

    }

1 个答案:

答案 0 :(得分:0)

很长一段时间都没有使用过Laravel,但这是我会做的。首先,我希望 this.personService.getPersons().subscribe((result: Uczen[]) => { for (const item of result) { this.osoby.push(item); } console.log(this.osoby[1]); console.log(this.osoby.length); }); 不是来自表单验证器,而是来自Laravel本身。在这种情况下,我要做的是增加PostTooLargeException中的max_post_size设置(然后可能是upload_max_filesize)。

这将降低到达控制器的请求。

然后,您可以使用验证器来处理图像大于指定的2048的错误。有关显示错误的更多详细信息,请查看docs