在 Laravel 5.3 中,新增了一个表单验证选项:上传图片的图片尺寸,该验证规则名称为 dimensions ,你可以传递如下参数到验证规则:
min_width:宽度比这个尺寸窄的图片将会被拒绝
max_width:宽度比这个尺寸宽的图片将会被拒绝
min_height:高度比这个尺寸矮的图片将会被拒绝
max_height:高度比这个尺寸高的图片将会被拒绝
width:宽度不等于这个尺寸的图片将会被拒绝
height:高度不等于这个尺寸的图片将会被拒绝
ratio:宽高比不等于这个值的图片将会被拒绝
你也可以组合使用这些规则,下面让我们来看一些示例。
定义一个简单的路由规则:
// routes file
Route::get('/', function () {
return view('form');
});
Route::post('/', 'ImageController@postImage');
对应视图文件如下:
/**
* 图片验证规则代码
* Author:学院君@LaravelAcademy.org
*/
// ImageController
public function postImage(Request $request)
{
$this->validate($request, [
'avatar' => 'dimensions:min_,min_'
]);
// 或者 ...
$this->validate($request, [
'avatar' => 'dimensions:min_,max_'
]);
// 或者 ...
$this->validate($request, [
'avatar' => 'dimensions:,'
]);
// 或者...
// 确保图片宽度是高度的1.5倍
$this->validate($request, [
'avatar' => 'dimensions:ratio:3/2'
]);
}