不同文件类型的最大文件大小不同?

时间:2017-06-27 19:04:45

标签: laravel laravel-5 laravel-5.3

我想为不同的文件类型设置不同的最大文件大小,例如:

  • 图像的最大文件大小为10 MB(PNG,JPEG和GIF)
  • 视频的最大文件大小为50 MB(MP4)

现在,我的验证器只允许10 MB用于所有文件类型:

$validator = Validator::make($request->all(), [
    'file' => 'required|max:10000|mimes:jpg,jpeg,png,gif,mp4',
]);

如何为不同的文件类型设置不同的最大文件大小?

1 个答案:

答案 0 :(得分:2)

您可以使用if条件规则解决此问题。我知道,这不是最佳做法,但它可以解决您的问题。

$default_max_value = 10000;
if($request->hasFile('file') && $request->get('file')->getClientOriginalExtension() == 'mp4'){
    $default_max_value = 50000;
}

$validator = Validator::make($request->all(), [
    'file' => 'required|max:'.$default_max_value.'|mimes:jpg,jpeg,png,gif,mp4',
]);