【问题标题】:How do Insert / Save new file name after rename to my database?重命名到我的数据库后如何插入/保存新文件名?
【发布时间】:2015-02-19 10:59:29
【问题描述】:

我们如何在保留在我的数据库中后插入新的文件名? 我有同名但不同的图像示例jellyfish.jpgjellyfish.jpg 的文件。 将“覆盖”设置为 false 后,我尝试上传 jellyfish.jpg 两次并成功上传 在我的文件夹上传中,名字为jellyfish.jpg 的图像和第二次上传的是jellyfish1.jpg。 但是,在我签入数据库后,文件名相同 jellyfish.jpgjellyfish.jpg 而不是 jellyfish.jpgjellyfish1.jpg

如何在我的数据库中插入新的文件名?

相关控制器代码:

 <?php  

class Cutidiluar extends CI_Controller {

var $limit=10;
var $offset=10; 

public function __construct() {
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->model('Cutidiluar_Model');

}
     public function add()
        { if($this->session->userdata('LOGIN')=='TRUE')
     {
   $this->load->library('form_validation');
   $this->load->model('Diluartahunan_Model');

   $this->form_validation->set_rules('ket', 'ket');
   $this->form_validation->set_rules('lama', 'lama');
   $this->form_validation->set_rules('lampiran', 'lampiran');

  if ($this->form_validation->run() == false) { 

 $data['nama']   = $this->Diluartahunan_Model->nama();
        $data['view'] = 'Cutidiluar/add';
         $data['judul']='';
        $this->load->view('index',$data);
        }else {
            $config = array(
            'upload_path' => "./uploads/",
            'allowed_types' => "gif|jpg|png|jpeg|pdf",
            'overwrite' => false,
            'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
            'max_height' => "768",
            'max_width' => "1024"
            );


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

    //file berhasil diupload -> lanjutkan ke query insert
    $npp=$this->session->userdata('NPP');
    $id_jenis = $_POST['id_jenis'];
    $ket  = $_POST['ket'];
    $lama = $_POST['lama'];
    $tgl_selesai= date('Y-m-d', strtotime($_POST['tgl_selesai']));
    $tgl_mulai= date('Y-m-d', strtotime($_POST['tgl_mulai']));
    $lampiran = $_FILES['userfile']['name'];
     $data = array (
        'npp'=> $npp,
    'id_jenis'=> $id_jenis,
    'tgl_pengajuan' => date('y-m-d'),
    'ket' => $ket,
    'status' => 'P', 
    'lampiran'=> $lampiran,
    'lama'=> $lama,
    'tgl_mulai'=> $tgl_mulai,
     'tgl_selesai'=> $tgl_selesai,
         );
     $this->Cutidiluar_Model->add($data);
        redirect('Cutidiluar');}}}

要上传的文件

$lampiran = $_FILES['userfile']['name'];

*更新(已解决) 我要更改此代码 来自

      $lampiran = $_FILES['userfile']['name']; 

       $lampiran = $this->upload->file_name;

感谢建议编辑我的问题并为我缺乏英语感到抱歉

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    这是一个在控制器内部编写的简单函数:

    function incrementFileName($file_path,$filename){
     if(count(glob($file_path.$filename))>0)
     {
         $file_ext = end(explode(".", $filename));
         $file_name = str_replace(('.'.$file_ext),"",$filename);
         $newfilename = $file_name.'_'.count(glob($file_path."$file_name*.$file_ext")).'.'.$file_ext;
         return $newfilename;
      }
      else
      {
         return $filename;
      }
    }
    

    在$config数组之前调用这个函数

    $newName = $this->incrementFileName( "uploads/", $_FILES["my_file"]["name"]);
    

    $config数组中添加'file_name'=&gt;$newName

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2016-05-20
      • 2023-03-28
      • 2019-04-14
      • 2012-02-21
      • 2019-06-03
      • 2013-07-02
      相关资源
      最近更新 更多