Subir archivos al servidor con CODEIGNITER PHP

Primero construimos el formulario

   1: <form id="registro" name="registro"  action="<?=base_url()?>index.php/ctrClientes/addClient" method="POST" enctype="multipart/form-data">
   2:   
   3:   
   4:   <b><label for="login">Nombres:</label></b>
   5:   <input type="text" name="NombreCliente" id="NombreCliente" onchange=""/> <br />
   6:   
   7:   
   8:   <b><label for="nom_usu">Apellidos:</label></b>
   9:   <input type="text" name="apellidos" id="apellidos"/><br />
  10:   
  11:   <b><label for="RFC">RFC:</label></b>
  12:   <input type="text" name="RFC" id="RFC" /><br />
  13:   
  14:   
  15:   <b><label for="psw1">Foto:</label></b>
  16:   <input type="text" name="Foto" id="Foto"/><br />
  17:   
  18:   
  19:   
  20:   
  21:   
  22:  
  23:   <input type="submit" name="submit" value="Registrar"/><br />

Ahora le movemos al controlador

   1: public function addClient()
   2:     {
   3:         
   4:     
   5:         
   6:         $config['upload_path'] = $this->folder;
   7:         $config['allowed_types'] = 'zip|rar|pdf|docx|txt|jpg';
   8:         $config['remove_spaces']=TRUE;
   9:         $config['max_size']    = '100000';
  10:         $config['overwrite'] = FALSE;
  11:         $config['encrypt_name'] = TRUE;
  12:  
  13:         $this->load->library('upload', $config);
  14:         
  15:  
  16:         if(!$this->upload->do_upload('cer')){
  17:             $error = array('error' => $this->upload->display_errors());
  18:             echo $this->upload->display_errors();
  19:             //$this->load->view('plantilla', $error);
  20:             }
  21:         else{
  22:             $upload_data = $this->upload->data(); 
  23:             $foto =   $upload_data['file_name'];
  24:         }
  25:         
  26:         
  27:                
  28:         
  29:         $data = array(
  30:                 "Nombre" => $this->input->post('NombreCliente'),
  31:                 "Apellido" => $this->input->post('apellidos'),
  32:                 "RFC" => $this->input->post('RFC'),
  33:                 "foto" => $nombreCertificado
  34:                 
  35:                 
  36:         );
  37:         
  38:         
  39:         //USANDO LA FUNCION DEL MODELO
  40:         
  41:         $this->clientsModel->insertClient($data);
  42:         
  43:        
  44:     }

Ahora solo lo insertamos con la ayuda del modelo

   1: public function insertBitacora($data){
   2:     $this->db->insert('bitacora',$data);
   3:     
   4: }
0