Laravel 5.3:txt或csv文件抛出异常(getimagesize():读取错误!)

时间:2016-12-05 13:14:05

标签: laravel

我使用以下代码验证图像文件。我只想上传图片文件。 但是,当用户上传txt或csv文件时,它会引发异常(getimagesize():读取错误!)。 以下是验证码。

$rules = [ 'mobile_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=710,height=400', 'web_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=1182,height=300', ]; 
$validator = Validator::make($validateData, $rules); 
if($validator->fails()){ 
}

我已经检查了Laravel验证文件。 他们使用getimagesize进行所有文件上传。 是否还有其他txt或csv文件的验证规则? 有没有办法用自定义规则覆盖验证器类?

2 个答案:

答案 0 :(得分:0)

您正在使用dimensions规则,因此Laravel会执行getimagesize()来获取图片尺寸。如果您要上传文本文件,请更改mimes并删除dimensions规则。

https://laravel.com/docs/5.3/validation

答案 1 :(得分:0)

尝试以下示例代码:

$validator = Validator::make($validateData,[
    'mobile_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=710,height=400',
    'web_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=1182,height=300',
])->validate();

<强>更新 您可以冒险尝试下面的代码段:

$image_size = @getimagesize( $image_url );
if($image_size === false){
    //Handle error message
}
else {
    $validator = Validator::make($validateData,[
        'mobile_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=710,height=400',
        'web_image'=>'mimes:jpg,jpeg,gif,png|dimensions:width=1182,height=300',
    ])->validate();
}

希望这能解决您的问题。