[Laravel 5.3 新功能] 7. 图片尺寸表单验证规则
4

说明

此文章是 [Laravel 5.3 新功能] 系列的第七篇文章,图片尺寸表单验证规则。

[Laravel 5.3 新功能] 系列完整文章列表请见:https://laravel-china.org/topics/2638

正文

在 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 的验证规则代码:

// ImageController
    public function postImage(Request $request)
    {
        $this->validate($request, [
             'avatar' => 'dimensions:min_width=250,min_height=500'
        ]);

        // or... 

        $this->validate($request, [
             'avatar' => 'dimensions:min_width=500,max_width=1500'
        ]);

        // or...

        $this->validate($request, [
             'avatar' => 'dimensions:width=100,height=100'
        ]);

        // or...

        // Ensures that the width of the image is 1.5x the height
        $this->validate($request, [
             'avatar' => 'dimensions:ratio=3/2'
        ]);
    }

这就完成图片尺寸的验证功能了,接下来只要完善好业务逻辑即可。

全文完。

链接

本帖已被设为精华帖!
本帖由系统于 2年前 自动加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!