Codeigniter Cambiar el nombre del archivo al cargar

Intento agregar el tiempo como el prefijo del nombre de la imagen junto con el nombre original al cargarlo, pero no pude entenderlo. Ayúdeme con el siguiente código para agregar un prefijo a mi nombre de archivo original al cargarlo.

load->helper(array('form', 'url')); } function index() { $this->load->view('upload_form', array('error' => ' ' )); } function do_upload() { $config['upload_path'] = 'Public/uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '1024'; $config['max_width'] = '1024'; $config['max_height'] = '768'; $this->load->library('upload', $config); if ( ! $this->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form', $error); } else { $data = array('upload_data' => $this->upload->data()); $this->load->view('upload_success', $data); } } } ?> 

Puede cifrar el nombre del archivo con el uso de la opción nativa de CI:

 $config['encrypt_name'] = TRUE; 

O

Puedes hacerlo con tu propio código:

 $new_name = time().$_FILES["userfiles"]['name']; $config['file_name'] = $new_name; 

Por alguna razón, las llamadas consecutivas a la función do_upload no funcionan. Se adhiere al primer nombre de archivo establecido por la primera llamada de función

 $small_photo_url = $this->upload_photo('picture_small', $this->next_id.'_small '); $medium_photo_url = $this->upload_photo('picture_medium', $this->next_id.'_medium'); $large_photo_url = $this->upload_photo('picture_large', $this->next_id.'_large '); 

Los nombres de los archivos serán “00001_small”, “00001_small1”, “00001_small2” con las siguientes configuraciones

 function upload_photo($field_name, $filename) { $config['upload_path'] = 'Public/uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '1024'; $config['max_width'] = '1024'; $config['max_height'] = '768'; $config['file_name'] = $filename; $this->load->library('upload', $config); if ( ! $this->upload->do_upload())... 

Creo que es porque esta línea no funciona la segunda vez que la llamas. No establece las configuraciones de nuevo

 $this->load->library('upload', $config); 

=============================================== ===================================================================================== Solución al problema que se presenta durante las llamadas a función do_upload consecutivas

 // re-initialize upload library $this->upload->initialize($config); 

Por lo que estás buscando exactamente, esto funcionó para mí:

 $path = $_FILES['image']['name']; $newName = "".".".pathinfo($path, PATHINFO_EXTENSION); 
 $config['file_name'] = $new_name; 

Solo agrégalo alineado con los códigos de configuración.

Esto debería ser después de la carga.

Procese el nombre de archivo que desea aquí:

 $a=$this->upload->data(); rename($a['full_path'],$a['file_path'].'file_name_you_want');