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'); }