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 相关文章推荐
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
php 方便水印和缩略图的图形类
May 21 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
PHP 中关于ord($str)>0x80的详细说明
Sep 23 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
php组合排序简单实现方法
Oct 15 PHP
Mac系统完美安装PHP7详细教程
Jun 06 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 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/07/22 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
Python logging日志库空间不足问题解决
2020/09/14 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
《维生素c的故事》教学反思
2014/02/18 职场文书
对照检查剖析材料
2014/09/30 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
基于JavaScript实现省市联动效果
2021/06/22 Javascript
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Python实现Hash算法
2022/03/18 Python