$this->load->library('upload'); // always keep it outside loops $images = array('image1','image2'); // fieldnames foreach($images as $image) { if($_FILES[$image]['error'] != 4) // images isn't uploaded { // config options for upload $this->upload->initialize($config); if(!$this->upload->do_upload($image) { // error collecting } else { // success collecting } } }