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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
php中的时间显示
Jan 18 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
PHP之密码加密的几种方式
Jul 29 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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
2006/12/14 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
javascript表单验证大全
2015/08/12 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
原生JS实现日历组件的示例代码
2017/09/22 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
python文件写入实例分析
2015/04/08 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
python sorted方法和列表使用解析
2019/11/18 Python
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
linux面试题参考答案(3)
2012/09/13 面试题
介绍一下write命令
2014/08/10 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
创业大赛策划书
2014/03/01 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
企业整改报告范文
2014/11/08 职场文书
刑事上诉状范文
2015/05/22 职场文书
Redis主从复制操作和配置详情
2022/09/23 Redis