Validation 如何在laravel中插入数据库之前验证图像尺寸

Validation 如何在laravel中插入数据库之前验证图像尺寸,validation,laravel-4,Validation,Laravel 4,我是laravel的新手。我正在尝试验证图像的尺寸。我希望尺寸最小宽度=100,高度=50。这里是使用controller.php中的验证代码的Iam “galimg”=>“必需”|最大值:200kb |最小尺寸300300 | Mimes:jpeg、jpg、gif、png ,pneg' 但是DimensionMin300300不起作用…我认为自定义验证规则是可能的…但我不知道如何使用它?在哪里?这是我的controller.php代码 public function getgallery()

我是laravel的新手。我正在尝试验证图像的尺寸。我希望尺寸最小宽度=100,高度=50。这里是使用controller.php中的验证代码的Iam “galimg”=>“必需”|最大值:200kb |最小尺寸300300 | Mimes:jpeg、jpg、gif、png ,pneg' 但是DimensionMin300300不起作用…我认为自定义验证规则是可能的…但我不知道如何使用它?在哪里?这是我的controller.php代码

public function getgallery()
  {
    $validate=Validator::make(Input::all(),array(
    'galname'=>'required|max:20',
     'galimg'=>'required|max:400kb|Dimensionmin(300,300)|Mimes:jpeg,jpg,gif,png
                     ,pneg'));
    if($validate->fails())
     {  return Redirect::route('getgallery')
        ->withErrors($validate)->withInput(); }
    else
    { $max_image = 3;
    if(ForumGallery::all()->count() < $max_image)
     {  $file=Input::file('galimg');
        $filename=$file->getClientOriginalName();
     $file->move('uploads',$filename);
     ForumGallery::create(['galname'=>Input::get('galname'),
           'galimg'=>$filename]);
     return Redirect::route('addgallery'); 
      }
    else
     {return Redirect::route('gallery')
      ->with('success','Max Image Upload Reached!');
     } }}
您可以使用此代码

函数getImgSizeimgSrc{ var newImg=新图像

}`

在这里,您可以获得图像的高度和宽度,并将其与所需的尺寸进行比较

提及

假设您还有一些其他字段要验证。把它们放在$v里。 现在需要添加自定义验证规则

$v->sometimes('galimg', 'required', function($input)
{
   //psudo code, here validate your image
   if($input.length >= 300) return false;
   return true;
});
将与图像相关的操作放入函数中

希望这有帮助

$validate=Validator::make(Input::all(),array(
'galname'=>'required|max:20',
 'galimg'=>'required|max:400kb|Mimes:jpeg,jpg,gif,png
                 ,pneg'));

$validate->sometimes('galimg', 'required', function($input)
{
   //psudo code, here validate your image
   return imagesx($input) > 300 && imagesy($input) > 300;
});

你可以使用这个很棒的库来检测你的图像尺寸

安装完成后,您可以在控制器中使用它,如下所示:

$validate=Validator::make(Input::all(),array(
  'galname'=>'required|max:20',
  'galimg'=>'required|mimes:jpeg,jpg,gif,png,pneg|image_size:1200,800'));
规则应为1200宽800高或宽度=1200高=800

注:尺寸单位为像素
希望有帮助。

先生。。。我的controller.php代码在上面..如何在这个controller.php中尝试上面的代码?请帮助..谢谢..先生..对不起,我是新来的laravel。。如何添加自定义验证规则。以及如何将与图像相关的操作放入函数中…………我尝试添加自定义验证规则。但是不起作用。如果你没有我的,你能解释一下吗???我不知道哪些页面文件夹已经习惯了……你能告诉我哪些文件夹已经使用,哪些代码已经使用……我不知道如何很好地处理laravel调用$validate->sometimesInput::all;先生,,,我在controller.php中使用的代码..没有自定义验证规则$validate=Validator::makeInput::all,数组“galname”=>“required | max:20”,“galimg”=>“required | max:400kb | Mimes:jpeg、jpg、gif、png、pneg”$验证->有时是'galimg','required',函数$input{//psudo代码,这里验证您的图像返回imagesx$input>300&&imagesy$input>300;};我得到一个错误,它是错误的。异常E_UNKNOWN imagesx希望参数1是资源,对象给定如何解决如何添加自定义验证规则?
$validate=Validator::make(Input::all(),array(
'galname'=>'required|max:20',
 'galimg'=>'required|max:400kb|Mimes:jpeg,jpg,gif,png
                 ,pneg'));

$validate->sometimes('galimg', 'required', function($input)
{
   //psudo code, here validate your image
   return imagesx($input) > 300 && imagesy($input) > 300;
});
$validate=Validator::make(Input::all(),array(
  'galname'=>'required|max:20',
  'galimg'=>'required|mimes:jpeg,jpg,gif,png,pneg|image_size:1200,800'));