Laravel - 验证最大规则无法处理上传的图像

时间:2015-08-28 20:54:51

标签: 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() )
{
  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规则的文件时,我有预期的响应:

enter image description here enter image description here

问题

但是当我上传超过max的文件时,我有这个(响应)错误:

enter image description here enter image description here

其他验证规则正在运行。

其他信息

请求后返回一些数据:

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}

文件超过max

{"photo":{},"hasFile":false,"extension":"jpg","size":0}

我期待一些反馈作为文件" file.jpg"超过你的upload_max_filesize ini指令,因为php.ini失败与最大尺寸有关。只增加 upload_max_filesize 指令并且有效。没有更多问题。

0 个答案:

没有答案