我想一次上传多个文件。 我以这种方式使用我的表格:
<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。对不起我的英文
感谢您提供任何帮助
答案 0 :(得分:0)
我通过扩展类上传来解决它。我用来做一个名为do_upload_check的新函数,我使用do_upload中的所有数据,但我删除文件从/ tmp /移动到我的目录上的文件上传的最后一行