CodeIgniter 3.1.3上传多个文件处理错误

时间:2017-03-23 16:07:17

标签: php codeigniter file-upload

我想一次上传多个文件。 我以这种方式使用我的表格:

<input type="file" name="files[]" multiple/>

问题是我想在我的配置目录上正确上传之前验证每个文件。

如果有人一次上传15个文件而且一个文件dosen`t有一个有效的大小和/或类型....我想中止所有上传的文件,并在表单上给出错误。 Al认为很好,但我不能先检查(使用codeigniter库上传) 我试着这个来验证文件是否有效,但是它们已经上传到我的文件夹文件中了,我不想要这个:

if ($_FILES['files']['name']['0'] != '') {
    $config['upload_path'] = 'docs/';
    $config['allowed_types'] = 'jpg|jpeg|png|gif|pdf';
    $this->load->library('upload',$config);
    foreach ($_FILES['files']['name'] as $key=>$value) {
        $file_upload[$key] = array(
                'name'=>$_FILES['files']['name'][$key],
                'type'=>$_FILES['files']['type'][$key],
                'tmp_name'=>$_FILES['files']['tmp_name'][$key],
                'error'=>$_FILES['files']['error'][$key],
                'size'=>$_FILES['files']['size'][$key]
            );
    }
    $i = 0;
    foreach ($file_upload as $key=>$file) {
        $this->upload->initialize($config);
        $_FILES['file' . $key] = $file_upload[$key];
        if(!$this->upload->do_upload('file' . $key)) {
            if ($i == 0) {
                $this->error['files_error'] = sprintf($this->upload->display_errors(),$_FILES['file' . $key]['name']);
                $this->error['error_warning'] = $this->lang->line('error_warning_form');
            } else {
                $this->error['files_error'] .= sprintf($this->upload->display_errors(),$_FILES['file' . $key]['name']);
            }
            $i++;
        }
    }
}

我想验证每个文件,如果所有文件都正常,请将它们上传到我的文件夹

P.S。对不起我的英文

感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

我通过扩展类上传来解决它。我用来做一个名为do_upload_check的新函数,我使用do_upload中的所有数据,但我删除文件从/ tmp /移动到我的目录上的文件上传的最后一行

相关问题