欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

kohana框架上传文件验证规则写法示例

程序员文章站 2022-06-08 11:19:38
先声明下我用的是ko3.2.0版本. kohana的验证,用的同学们都少懂点,因为每个函数的注释里都会举个例子.今天遇到的情况是验证图片上传,kohana的例子是这个样子...

先声明下我用的是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版本,其它版本注意修改下写法.