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 替换模板变量实现步骤
Aug 24 PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
Oct 31 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP时间和日期函数详解
May 08 PHP
分享php多功能图片处理类
May 15 PHP
PHP请求Socket接口测试实例
Aug 12 PHP
Laravel框架路由管理简单示例
May 07 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 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
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python数据封装json格式数据
2018/03/04 Python
flask实现验证码并验证功能
2019/12/05 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
Django数据统计功能count()的使用
2020/11/30 Python
python中altair可视化库实例用法
2021/01/26 Python
《桃林那间小木屋》教学反思
2014/05/01 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
劳动仲裁调解书
2015/05/20 职场文书
董事长开业致辞
2015/07/29 职场文书
教师听课学习心得体会
2016/01/15 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server