在codeigniter

时间:2015-10-23 09:11:39

标签: php forms codeigniter validation

codeigniter 中,我的表单包含一些文本和文件(输入类型=文件)字段。某些文字字段为必需。当我用文件填写表单但错过了一个必填字段并提交表单时。所有字段再次重新填充文件字段以外的文本。如何在表单提交失败时获取所选文件。

我试过set_value(),但似乎无效。

还有一件事我可以一次上传多个文件:

$data = array ( 'name'=>'data_sheet[]',
                        'id'=>'data_sheet',
                        'class'=>'form-control',
                        'value'=>set_value('data_sheet', $data_sheet), 
                        'onchange'=>'validateFileInput(this)',
                      );
                    echo form_upload($data,'','multiple');

以下是验证:

$this->form_validation->set_rules('name','name' ,'trim|required');
    $this->form_validation->set_rules('data_sheet','data sheet','trim');
if ($this->form_validation->run() == false)
    {
        $this->template->write_view('content', 'user/user_form',$data,TRUE);
    }

当我设置 set_value 时:

set_value=json_encode($_FILES)

<input type="file" name="data_sheet[]" value="{"data_sheet":{"name":["download.jpg"],"type":["image\/jpeg"],"tmp_name":["\/tmp\/phpTxQzNe"],"error":[0],"size":[4792]}}" id="data_sheet" class="form-control" onchange="validateFileInput(this)" multiple="">

我如何使用thos上传文件

1 个答案:

答案 0 :(得分:2)

将您的代码修改为:

      $data = array ( 'name'=>'data_sheet[]',
                    'id'=>'data_sheet',
                    'class'=>'form-control',
                    'value'=>$_FILES['data_sheet[]']['tmp_name'],
                    'onchange'=>'validateFileInput(this)',
                  );
                echo form_upload($data,'','multiple');