Iam new in laravel .im试图验证图像的尺寸。我希望尺寸最小(宽度= 100,高度= 50)。使用controller.php中的验证码。
'galimg'=>'所需| MAX:200KB | DimensionMin(300300)|默剧:JPEG,JPG,GIF,PNG
,pneg“
但DimensionMin(300,300)不起作用....我认为自定义验证规则是可能的..但我不知道如何使用它?在哪里?这是我的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!');
} }}
答案 0 :(得分:0)
您可以使用此代码
function getImgSize(imgSrc) {
var newImg = new Image();
newImg.onload = function() {
var height = newImg.height;
var width = newImg.width;
alert ('The image size is '+width+'*'+height);
}
newImg.src = imgSrc; // this must be done AFTER setting onload
}`
在这里,您可以获得图像的高度和宽度,将其与您所需的尺寸进行比较。
答案 1 :(得分:0)
$v = Validator::make($data, array(
'email' => 'required|email',
'games' => 'required|numeric',
));
假设您还有其他一些要验证的字段。把它们放在$ 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;
});
答案 2 :(得分:0)
您可以使用此强大的库来检测图像尺寸here
完成安装后,您可以在控制器中使用它,如下所示:
$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
注意:尺寸以像素为单位 希望它有所帮助。