Codeigniter Rename file on upload

后端 未结 9 2316
暗喜
暗喜 2020-12-13 09:28

I\'m trying to add time as the prefix of the image name along with the original name when uploading, But I couldn\'t figure it out. Please help me with the following code to

相关标签:
9条回答
  • 2020-12-13 10:00

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

    $path = $_FILES['image']['name'];
    $newName = "<Whatever name>".".".pathinfo($path, PATHINFO_EXTENSION); 
    
    0 讨论(0)
  • 2020-12-13 10:04

    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;
    
    0 讨论(0)
  • 2020-12-13 10:07

    This should be after the upload.

    Process the filename you want here:

    $a=$this->upload->data();         
    rename($a['full_path'],$a['file_path'].'file_name_you_want');
    
    0 讨论(0)
  • 2020-12-13 10:13
    $config['file_name'] = $new_name;
    

    Just add it align with the config codes.

    0 讨论(0)
  • 2020-12-13 10:14

    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);
    
    0 讨论(0)
  • 2020-12-13 10:14
            /* Conf */
            $new_name                   = time().$_FILES["userfiles"]['name'];
            $config['file_name']        = $new_name;
            $config['upload_path']      = './upload/';
            $config['allowed_types']    = 'gif|jpg|png';
            $config['max_size']         = '';
            $config['max_width']        = '';
            $config['max_height']       = '';
            $config['file_ext_tolower'] = TRUE;
    
          /*  Load the upload library  */   
            $this->load->library('upload', $config);
    
    0 讨论(0)
提交回复
热议问题