【发布时间】:2017-05-28 13:32:31
【问题描述】:
我正在尝试通过我的表单上传多张图片。我已经处理了许多期望,例如 form_open_multipart,在上传输入中将名称称为 Array。
图片上传没有问题。我可以成功上传多张图片,但是当我选择带有图片的任何文本或非图片文件时出现问题。
我正在检查的情况是,如果用户将图像与文本文件混合(不小心选择了任何其他带有图像的文件)图像和文本文件,那么一些文件正在被上传,然后我得到错误类型的文件的错误。 在理想情况下,如果任何一个文件的文件类型不正确,它可能不允许上传文件。
那么任何人都可以帮我解决一下我如何在文件上传之前检查所有文件是否允许输入?
我尝试了很多示例,但总体上遇到了相同的问题。
如果我上传多张图片没有问题。它工作正常。
<input type="file" name="pic_url[]" multiple accept="image/*" />
下面是我的控制器
$config['upload_path'] = './assets/prop_pic/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 20000;
$config['encrypt_name'] = TRUE;
$config['detect_mime'] = TRUE;
//initialize upload class
$this->load->library('upload', $config);
$upload_error = array();
for ($i = 0; $i < count($_FILES['pic_url']['name']); $i++) {
$_FILES['pic_url']['name'] = $_FILES['pic_url']['name'][$i];
$_FILES['pic_url']['type'] = $_FILES['pic_url']['type'][$i];
$_FILES['pic_url']['tmp_name'] = $_FILES['pic_url']['tmp_name'][$i];
$_FILES['pic_url']['error'] = $_FILES['pic_url']['error'][$i];
$_FILES['pic_url']['size'] = $_FILES['pic_url']['size'][$i];
if (!$this->upload->do_upload('pic_url')) {
// fail
$upload_error = array('error' => $this->upload->display_errors());
//$this->load->view('multiple_upload_view', $upload_error);
$this->session->set_flashdata('upload_error', $upload_error);
redirect('property_master/view_prop_master_form');
break;
}
}
【问题讨论】:
标签: image codeigniter file-upload