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 相关文章推荐
Php部分常见问题总结
Oct 09 PHP
PHP 多维数组排序实现代码
Aug 05 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
php构造函数实例讲解
Nov 13 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
php 中phar包的使用教程详解
Oct 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通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php+mysql数据库查询实例
2015/01/21 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
javascript作用域问题实例分析
2015/07/13 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
Python 操作MySQL详解及实例
2017/04/30 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
python 实现多维数组转向量
2019/11/30 Python
python怎么对数字进行过滤
2020/07/05 Python
详解如何修改python中字典的键和值
2020/09/29 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
优秀干部获奖感言
2014/01/31 职场文书
统计学教授推荐信
2014/09/18 职场文书
环保主题班会教案
2015/08/13 职场文书
小学班主任教育随笔
2015/08/15 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis