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 EOT定界符的使用详解
Sep 30 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php生成excel列序号代码实例
Dec 24 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
win7安装php框架Yii的方法
Jan 25 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 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自动获取目录下的模板的代码
2010/08/08 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php中socket的用法详解
2014/10/24 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[03:48]大碗DOTA
2019/07/25 DOTA
关于python中密码加盐的学习体会小结
2019/07/15 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
python线程中的同步问题及解决方法
2019/08/29 Python
postman传递当前时间戳实例详解
2019/09/14 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python3中rank函数的用法
2019/11/27 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
python遍历路径破解表单的示例
2020/11/21 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
学校节能减排方案
2014/06/13 职场文书
个人优缺点总结
2015/02/28 职场文书
银行求职自荐信范文
2015/03/04 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
小数乘法教学反思
2016/02/22 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
创业计划书之熟食店
2019/10/16 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
Redis入门基础常用操作命令整理
2022/06/01 Redis