kohana框架上传文件验证规则写法示例


Posted in PHP onJuly 14, 2014

先声明下我用的是ko3.2.0版本.

kohana的验证,用的同学们都少懂点,因为每个函数的注释里都会举个例子.今天遇到的情况是验证图片上传,kohana的例子是这个样子的.

$array->rule('file', 'Upload::type', array(array('jpg', 'png', 'gif')));

这个本身没有问题,但是呢,在实际的应用中总有点不方便,为什么呢,因为传到后面处理的时候,不仅要验证图片的上传还要验证form表单的某些字段.
一般我们会这样写
$post = new Validation($_POST);

$file = new Validation($_FILES);

这样写也没什么问题,验证的时候按例子写也ok.但是觉得new2次有点怪怪的,而且我们也知道$_POST和$_FILES都是数组,可以一次验么?那肯定的,当然,我们得先把它们变成一个大的数组.这样写就OK.
$post = new Validation(array_merge($_POST,$_FILES));//不明白的同学,度娘下array_merge

重点出场了,亲们.大家都知道验证form表单的字段写法和合并前没什么区别,关键是这个图片上传(或是其他的用到upload)要怎么写.
好吧,时间关系直接上代码,大家可以拿去直接用,当然有兴趣的同学也可以试用rules.
$post->rule('img','not_empty')

     ->rule('img','Upload::type',array(':value',array('jpg','png','gif')))

      ->rule('img','Upload::size',array(':value','1M'));

PS:img就是前台form表单中input type="file" 那个控件名称啦,后台是找不到ID的.
再次声明我用的kohana3.2.0版本,其它版本注意修改下写法.
PHP 相关文章推荐
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 #PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 #PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 #PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 #PHP
PHP缓存机制Output Control详解
Jul 14 #PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 #PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 #PHP
You might like
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python 图片验证码代码
2008/12/07 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python机器学习之神经网络实现
2018/10/13 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
日语翻译个人求职的自我评价
2013/10/14 职场文书
海南地接欢迎词
2014/01/14 职场文书
教师一岗双责责任书
2014/04/16 职场文书
预备党员公开承诺书
2014/05/28 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
2014年双拥工作总结
2014/11/21 职场文书
教师节倡议书2015
2015/04/27 职场文书
城南旧事观后感
2015/06/11 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL