Codeigniter Rename file on upload Codeigniter Rename file on upload codeigniter codeigniter

Codeigniter Rename file on upload


You can encrypt file name with use of CI native option:

$config['encrypt_name'] = TRUE;

OR

You can do it with your own code:

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


For some reasons, consecutive calls to the do_upload function doesn't work. It sticks to the first filename set by the first function call

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

The filenames will all be "00001_small", "00001_small1", "00001_small2"given the following configurations

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())...

I think it's because this line doesn't work the second time you call it. It does not set the configurations again

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

==========================================================================Solution to the problem faced during consecutive do_upload function calls:

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


For what you are exactly looking for, this worked for me:

$path = $_FILES['image']['name'];$newName = "<Whatever name>".".".pathinfo($path, PATHINFO_EXTENSION);