Php 背包积垢:如何验证使用elFinder上传的图像的尺寸?

Php 背包积垢:如何验证使用elFinder上传的图像的尺寸?,php,validation,laravel-5.4,backpack-for-laravel,Php,Validation,Laravel 5.4,Backpack For Laravel,我很难验证laravel背包中的图像尺寸 在我的背包CRUD中,我使用elFinder添加了一个照片上传字段,如下所示: $addFields = [ [ 'name' => 'photo', 'label' => 'Header Photo (1500 x 1000 EXACTLY)', 'type' => 'browse' ] ] 在我的请求中,我使用以下规则验证图像的大小: public function

我很难验证laravel背包中的图像尺寸

在我的背包CRUD中,我使用elFinder添加了一个照片上传字段,如下所示:

$addFields = [
    [
        'name' => 'photo',
        'label' => 'Header Photo (1500 x 1000 EXACTLY)',
        'type' => 'browse'
    ]
]
在我的请求中,我使用以下规则验证图像的大小:

public function rules()
{

    return [
        'photo' => 'dimensions:width=1500,height=1000'
    ];
}
无论我尝试什么维度属性,验证都会失败。我已经尝试过像max_width这样的方法,远远高于测试用例文件的维度

我的理论是,验证器正在寻找要在post中传递的实际“file”字段,但elFinder正在传递上传的文件的路径


关于如何使用路径在Laravel中处理图像维度验证有什么想法吗?

我通过添加一个自定义验证器方法和PHP的本机
getimagesize
函数来使用规则提供的路径进行验证,从而解决了这个问题

创建自定义验证类型 在app/Providers/AppServiceProvider.php中:

包括验证程序类:

使用light\Support\Facades\Validator

AppServiceProvider.php中的
boot()
函数内部添加:

    Validator::extend('header_image', function($attribute, $value, $parameters, $validator) {

        $path = public_path();
        $photo = "$path/$value";
        list($width,$height) = getimagesize($photo);
        // $parameters[0] = width
        // $parameters[1] = height
        if ($width != $parameters[0] || $height != $parameters[1]) {
            return false;
        }else{
            return true;
        }

    });
现在我可以使用
header\u image
作为验证类型,并将宽度/高度约束作为参数传入:

'photo'=>'header\u image:15001000',