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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
用mysql内存表来代替php session的类
Feb 01 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
php接口与接口引用的深入解析
Aug 09 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
PHP的几个常用加密函数
Feb 03 PHP
session 加入redis的实现代码
Jul 15 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
php+ajax实现文件切割上传功能示例
Mar 03 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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+MSSQL分页的例子
2006/10/09 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
学习ExtJS table布局
2009/10/08 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
python中异常报错处理方法汇总
2016/11/20 Python
对Python实现累加函数的方法详解
2019/01/23 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Python中if有多个条件处理方法
2020/02/26 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
法人授权委托书格式
2014/04/08 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
植树节标语
2014/06/27 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书