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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
php懒人函数 自动添加数据
Jun 28 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
php中JSON的使用与转换
Jan 14 PHP
php中动态变量用法实例
Jun 10 PHP
php文件读取方法实例分析
Jun 20 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 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源代码数组统计count分析
2011/08/02 PHP
提高php编程效率技巧
2015/08/13 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
python 如何调用 dubbo 接口
2020/09/24 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
大学生村官承诺书
2014/03/28 职场文书
参赛口号
2014/06/16 职场文书
个人委托书
2014/07/31 职场文书
公司总经理岗位职责
2015/04/01 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
React实现动效弹窗组件
2021/06/21 Javascript
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python