Laravel 5.3 新特性系列 —— 新增上传图片尺寸验证规则
在 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');
对应视图文件如下:
<!--form.blade.php-->
<form method="POST" enctype="multipart/form-data">
<input type="file" name="avatar">
<input type="submit">
</form>
最后,让我们来编写控制器 ImageController
,并实现验证规则代码:
/** * 图片验证规则代码 * Author:学院君@LaravelAcademy.org */ // ImageController public function postImage(Request $request) { $this->validate($request, [ 'avatar' => 'dimensions:min_width=250,min_height=500' ]); // 或者 ... $this->validate($request, [ 'avatar' => 'dimensions:min_width=500,max_width=1500' ]); // 或者 ... $this->validate($request, [ 'avatar' => 'dimensions:width=100,height=100' ]); // 或者... // 确保图片宽度是高度的1.5倍 $this->validate($request, [ 'avatar' => 'dimensions:ratio:3/2' ]); }
声明:本文整理翻译自https://mattstauffer.co/blog/image-dimension-validation-rules-in-laravel-5-3
9 Comments