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巧获服务器端信息
Dec 06 PHP
php实现mysql数据库备份类
Mar 20 PHP
php SQL之where语句生成器
Mar 24 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php使用codebase生成随机数
Mar 25 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
php的debug相关函数用法示例
Jul 11 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
摩卡咖啡
2021/03/03 咖啡文化
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
Python如何读写字节数据
2020/08/05 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
省级四好少年事迹材料
2014/01/25 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
治超工作实施方案
2014/05/04 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers