Multiple files upload in Codeigniter
I change upload method with images[]
according to @Denmark.
private function upload_files($path, $title, $files) { $config = array( 'upload_path' => $path, 'allowed_types' => 'jpg|gif|png', 'overwrite' => 1, ); $this->load->library('upload', $config); $images = array(); foreach ($files['name'] as $key => $image) { $_FILES['images[]']['name']= $files['name'][$key]; $_FILES['images[]']['type']= $files['type'][$key]; $_FILES['images[]']['tmp_name']= $files['tmp_name'][$key]; $_FILES['images[]']['error']= $files['error'][$key]; $_FILES['images[]']['size']= $files['size'][$key]; $fileName = $title .'_'. $image; $images[] = $fileName; $config['file_name'] = $fileName; $this->upload->initialize($config); if ($this->upload->do_upload('images[]')) { $this->upload->data(); } else { return false; } } return $images; }
You should use this library for multi upload in CIhttps://github.com/stvnthomas/CodeIgniter-Multi-Upload
public function index() { $user = $this->session->userdata("username"); $file_path = "./images/" . $user . '/'; if (isset($_FILES['multipleUpload'])) { if (!is_dir('images/' . $user)) { mkdir('./images/' . $user, 0777, TRUE); } $files = $_FILES; $cpt = count($_FILES ['multipleUpload'] ['name']); for ($i = 0; $i < $cpt; $i ++) { $name = time().$files ['multipleUpload'] ['name'] [$i]; $_FILES ['multipleUpload'] ['name'] = $name; $_FILES ['multipleUpload'] ['type'] = $files ['multipleUpload'] ['type'] [$i]; $_FILES ['multipleUpload'] ['tmp_name'] = $files ['multipleUpload'] ['tmp_name'] [$i]; $_FILES ['multipleUpload'] ['error'] = $files ['multipleUpload'] ['error'] [$i]; $_FILES ['multipleUpload'] ['size'] = $files ['multipleUpload'] ['size'] [$i]; $this->upload->initialize($this->set_upload_options($file_path)); if(!($this->upload->do_upload('multipleUpload')) || $files ['multipleUpload'] ['error'] [$i] !=0) { print_r($this->upload->display_errors()); } else { $this->load->model('uploadModel','um'); $this->um->insertRecord($user,$name); } } } else { $this->load->view('uploadForm'); }}public function set_upload_options($file_path) { // upload an image options $config = array(); $config ['upload_path'] = $file_path; $config ['allowed_types'] = 'gif|jpg|png'; return $config;}