【问题标题】:How to validate an array of uploaded files?如何验证上传的文件数组?
【发布时间】:2013-11-08 08:52:53
【问题描述】:

验证单个文件(单个输入文件字段)在 Yii 中没有问题,而且效果很好:

public function rules() {
    return CMap::mergeArray(parent::rules(), array(
        array(
            'image', 
            'file', 
            'allowEmpty'=>false, 
            'types'=>'pdf,jpg,gif,png', 
            'on' => 'CaseA, CaseB', 
            'maxSize'=>1024000, 
            'tooLarge' => 'Max File size is 1MB', 
            'message' => 'You have to upload a file at least'
        ),
        ....
        ....

如果图像是一个文件数组怎么办? Yii 创建的表单元素看起来像这样(Firebug-Output):

<input type="file" id="MyFormModel[image][0]" name="MyFormModel[image][0]">
<input type="file" id="MyFormModel[image][1]" name="MyFormModel[image][1]">

我应该在我的规则中具体修改什么?一个简单的“image[]”没有帮助。

编辑:解决方案

public function rules() {
    return CMap::mergeArray(parent::rules(), array(
        array(
            'image', 
            'file', 
            'allowEmpty'=>false, 
            'types'=>'pdf,jpg,gif,png', 
            'on' => 'CaseA, CaseB', 
            'maxSize'=>1024000, 
            'maxFiles' => 5, // <----- THAT'S IT
            'tooLarge' => 'Max File size is 1MB', 
            'message' => 'You have to upload a file at least'
        ),
        ....
        ....

【问题讨论】:

    标签: php validation file-upload yii


    【解决方案1】:

    适当地设置maxFiles 属性,验证器将适用于所有输入。您无需更改输入控件名称。

    猜你喜欢
    • 2022-01-20
    • 2010-09-09
    • 1970-01-01
    • 2017-05-17
    • 2018-07-28
    • 1970-01-01
    • 2010-12-18
    • 2015-02-25
    相关资源
    最近更新 更多