Mi objetivo es que cuando guardo la carga del archivo en mi base de datos, el nombre del archivo debe ser la combinación de ID de usuario y fecha y hora. Por ejemplo, el nombre del archivo original es C231.jpg. Cuando lo guardé en mi base de datos, el nombre del archivo debería ser 0112021443 (01

Vista:

<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>

Controlador:

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

Modelo:

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;
        }
    }
0
Jake G 20 ene. 2021 a las 11:44

1 respuesta

La mejor respuesta

Prueba esto,

$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
        );
1
M.Hemant 20 ene. 2021 a las 12:09