form_validation-> run()无法正常工作

时间:2018-02-16 17:52:45

标签: php codeigniter

 public function upload()
    {
        if (empty($_FILES['vchr_file']['name'])) {
            $this->form_validation->set_rules('vchr_file','File','required');
        }

        if ($this->form_validation->run()== true) 
        {
            echo 'valid';
        }
        else{

    $data['message'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('message')));


            $data['file']=array(
                        'name'  =>'vchr_file',
                        'type'  =>'file',
                        'label' =>'File Upload'
                        );

            $this->load->user_view('kyc',$data);
        }   
    }

我的控制器

div class="row">
                <div class="col-md-4">
                    <?php echo form_label($file['label']); 
                     echo form_input($file); ?>
                </div>
                <div class="col-md-2">
                    <input type="submit" name="upload" value="Upload">
                </div>
            </div>
        <?php echo form_close(); ?>

我的观点

form_validation永远不会运行..而且当我上传文件时验证错误没有显示,但验证run()无效。

1 个答案:

答案 0 :(得分:0)

当文件实际上传时,条件set_rules语句不适用该规则(这是有意义的)。但是,form_validation总是需要设置规则,如果没有设置规则(例如条件语句因为上传文件而永远不会通过),而run()将始终返回false。

如果您计划实施更多规则,那么您应该没有问题。

最好只使用form_validation来处理它,而只使用empty($_FILES['vchr_file']['name']的条件语句(再次,如果你不添加更多规则)。