文件上传并保存文件名结合日期和用户 ID (Codeigniter)

File upload and save the file name with combination of date and ID of user (Codeigniter)

我的目标是当我将上传的文件保存到我的数据库时,文件名应该是用户ID和日期时间的组合。例如:原始文件名是C231.jpg。当我将它保存在我的数据库中时,文件名应该是 0112021443(01 < 用户 ID)(12021 = 日期)(443 = 时间)。任何帮助将不胜感激。提前谢谢你。

查看:

<form method="post"  action="<?php echo site_url('ewallet/cashins')?>" enctype="multipart/form-data">

                     <div class="input-group">
                      
                      <input type="number" class="form-control" id="box" name="amount1" min="100"  required>
                  <div class="input-group-append">    
                     <button type="button" id="doClear" class="btn btn-danger btn-flat"><i class="fas fa-times-circle"></i></button>
                  </div>
                   </div>
                   <br>
             
                     
                      <br><br>
                        <label for="exampleInputEmail1"><i class="fas fa-image mr-2"></i>Upload Receipt Picture</label>
                        
                       <input type="file" name="fileName" class="form-control btn-sm" min="50" id="fileName">
                    <br>
           <input type="submit" class="amount btn btn-success btn-sm float-right text-bold" name="save" id="insert" value="CONFIRM">
                    
                </form>

控制器:

**public function cashins() {
        $this->ewallets->cashpasok();
        redirect("ewallet/cashin");
    }**

型号:

function cashpasok() {
     
        $ref= $this->session->userdata('userID') + time ();
        $data = array (
            'refNumber' => 'CI' . $ref,
            'userID' => $this->session->userdata('uid'),
            'username' => $this->session->userdata('username'), 
            'amount' => $this->input->post('amount1'),
            'status' => "pending",
            'transtype' => "cash_in",
            'remarks' => "",
            'fileName' => $this->upload(),
            
            
        );
        $this->db->insert('cash_in', $data);
    }

function upload(){
        $ref= $this->session->userdata('userID') + time ();
        $pic=array(
            
            'upload_path'=>'public/assets/uploads',
            'allowed_types'=>'gif|jpg|png',
            'max_size'=>4000,
            'max_width'=>10024,
            'max_height'=>10024,
        );
        $this->load->library("upload",$pic);
        $this->upload->initialize($pic);
       
        if($this->upload->do_upload('fileName')){
            $fb=$this->upload->data();
            $fd=$fb['file_name'];
            return $fd;
        }
        else{
            
            $data =  $this->input->post('fileName');
            return $data;
        }
    }

试试这个,

$file_name = $_FILES['fileName']['name'];
$Extension = pathinfo($file_name, PATHINFO_EXTENSION);
$ref= $this->session->userdata('userID').time ();//changes
$fileName = $ref . '.' . $Extension;

$pic=array(
      'upload_path'=>'public/assets/uploads',
      'allowed_types'=>'gif|jpg|png',
      'max_size'=>4000,
      'max_width'=>10024,
      'max_height'=>10024,
      'file_name' = $fileName;//changes to give custom file name
        );