Php Laravel-最大验证规则不适用于上载的图像
我正在使用ajax请求(FormData)处理一个文件字段,以便向服务器发送图像 这是我的php ajax处理程序Php Laravel-最大验证规则不适用于上载的图像,php,ajax,laravel,Php,Ajax,Laravel,我正在使用ajax请求(FormData)处理一个文件字段,以便向服务器发送图像 这是我的php ajax处理程序 public function onUploadAvatar() { $photo = Request::file('avatar'); $avatar = new Controllers\AvatarController( $photo ); $validator = $avatar->validator(); if ( $validator->fails()
public function onUploadAvatar()
{
$photo = Request::file('avatar');
$avatar = new Controllers\AvatarController( $photo );
$validator = $avatar->validator();
if ( $validator->fails() )
{
return [
'success' => false,
'validationErrors' => $validator->errors()
];
}
$moved = $avatar->attach();
if ( $moved !== false )
{
return [
'success' => true,
'avatarPath' => $moved
];
}
}
下面是我的验证器方法
public function validator()
{
$input = [
'avatar' => $this->photo
];
$rules = [
'avatar' => 'image|mimes:jpeg,jpg,png|max:1048576'
];
$messages = [
'mimes' => 'invalid format',
'max' => 'please 1MB',
'image' => 'please image'
];
$validator = Validator::make( $input, $rules, $messages );
return $validator;
}
当我发送一些大小小于max
规则的文件时,我得到了预期的响应:
问题
但当我上传的文件超过max
时,我有以下(响应)错误:
其他验证规则正在运行
传统信息
请求后返回一些数据:
return [
'photo' => Request::file('avatar'),
'hasFile' => Request::hasFile('avatar'),
'extension' => Request::file('avatar')->getClientOriginalExtension(),
'size' => Request::file('avatar')->getClientSize()
];
响应:
文件小于max
:
{"photo":{},"hasFile":true,"extension":"jpg","size":900498}
{"photo":{},"hasFile":false,"extension":"jpg","size":0}
超过最大值的文件
:
{"photo":{},"hasFile":true,"extension":"jpg","size":900498}
{"photo":{},"hasFile":false,"extension":"jpg","size":0}
解决方案
我希望得到一些反馈,因为文件“file.jpg”超过了针对php.ini的upload\u max\u filesize ini指令的最大大小。只增加了上传\u最大\u文件大小指令,并且有效。没问题了