View : (Save it with name upload.php in your views folder)
<?php echo form_open_multipart('upload/do_upload'); ?>
<?php echo $this->session->userdata('msg');
$this->session->set_userdata('msg', ''); ?>
<input type="file" name="file[]" id="file[]" required multiple="multiple">
<button type="submit" class="btn-input" name="submit" id="submit">Submit</button>
<?php echo form_close(); ?>
Controller : (Save it with name Upload.php in your controller folder)
public function do_upload() {
$filesCount = count($_FILES['file']['name']);
$uploadPath = 'uploads/'; /* uploads folder must be located in your root folder (along with application folder) */
if(!is_dir($uploadPath)) {
mkdir($uploadPath,0755,TRUE);
}
for($i = 0; $i < $filesCount; $i++){
$_FILES['userFile']['name'] = $_FILES['file']['name'][$i];
$_FILES['userFile']['type'] = $_FILES['file']['type'][$i];
$_FILES['userFile']['tmp_name'] = $_FILES['file']['tmp_name'][$i];
$_FILES['userFile']['error'] = $_FILES['file']['error'][$i];
$_FILES['userFile']['size'] = $_FILES['file']['size'][$i];
$config['upload_path'] = $uploadPath;
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp|doc|pdf|docx|rtf';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('userFile')){
$fileData = $this->upload->data();
$uploadData[$i]['file_name'] = $fileData['file_name'];
$uploadData[$i]['created'] = date("Y-m-d H:i:s");
$uploadData[$i]['modified'] = date("Y-m-d H:i:s");
}
}
if(!empty($uploadData)){
$this->session->set_userdata('msg', 'Files Uploaded Successfully');
$this->session->set_userdata('status', 'success');
$this->load->view('upload', $uploadData);
}
else {
$this->session->set_userdata('msg', $this->upload->display_errors());
$this->session->set_userdata('status', 'fail');
$this->load->view('upload');
}