【问题标题】:how to rename my file uploads and this file name following some data in DB如何根据数据库中的一些数据重命名我的文件上传和此文件名
【发布时间】:2018-11-18 02:01:14
【问题描述】:

我有这样上传文件的代码,这次上传将保存原始名称文件,但我想上传重命名文件的文件。我的文件名将跟随数据库上的一些数据。我可以在哪里更改我的代码来解决这个问题?

我有一个名为“格式”的表,将从该表中创建文件名文件。怎么输入format格式的数据,把原文件名改成和原文件一样的扩展名

public function proses_upload2(){

  $gambar = array();
  $jumlah = count($_FILES['userfile']['name']);

  for ($i=0; $i < $jumlah; $i++) { 
    $file_name = $_FILES['userfile']['name'][$i];
    $tmp_name = $_FILES['userfile']['tmp_name'][$i];        
    move_uploaded_file($tmp_name, "file/".$file_name);
    $gambar[$i] = $file_name;                 
  }     
                $nama_file1 = $gambar[0];
                $format_p2ptm ="Form Lap Haji"; 
                $tanggal =date("Y-m-d H:i:s");//$this->input->post('waktu_upload'); 
                $jenis='p2si';


                $nama_file2 = $gambar[1];
                $format_p2ptm2 ="Form Lap KLB"; 
                $jenis='p2si';

                $nama_file3 = $gambar[2];
                $format_p2ptm3 ="Form Lap Imunisasi Balita, Bumil dan WUS";
                $jenis='p2si';

                $nama_file4 = $gambar[3];
                $format_p2ptm4 ="Form Lap Investigasi Final KIPI";
                $jenis='p2si';

                $nama_file5 = $gambar[4];
                $format_p2ptm5 ="Form Lap Stock + Harga Vaksin"; 
                $jenis='p2si';

                $nama_file6 = $gambar[5];
                $format_p2ptm6 ="Form Lap Campak";
                $jenis='p2si';



                if (!$nama_file1 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm, $tanggal,$nama_file1,$jenis, $this->session->userdata('id_puskesmas'));
                }
                if (!$nama_file2 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm2, $tanggal,$nama_file2,$jenis,$this->session->userdata('id_puskesmas'));
                }
                if (!$nama_file3 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm3, $tanggal,$nama_file3,$jenis,$this->session->userdata('id_puskesmas'));
                }
                if (!$nama_file4 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm4, $tanggal,$nama_file4,$jenis,$this->session->userdata('id_puskesmas'));
                }
                if (!$nama_file5 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm5, $tanggal,$nama_file5,$jenis,$this->session->userdata('id_puskesmas'));
                }
                if (!$nama_file6 == "") {
                $this->app_model->insert_data('penyakit', $format_p2ptm6, $tanggal,$nama_file6,$jenis,$this->session->userdata('id_puskesmas'));
                }





            redirect('puskesmas/view_puskesmas1');

}

【问题讨论】:

  • 你的问题不够清楚,要不要为上传的文件创建一个随机文件名,然后将这个新名称保存到数据库中?
  • 有点困惑:您似乎没有使用 codeigniter 的内置上传库,尽管您将问题标记为 codeigniter。你能重构你的代码并使用 CI 的上传库吗?如果是这样,重命名上传的文件是一件好事

标签: php codeigniter file-upload upload


【解决方案1】:

使用您选择的名称,而不是 $file_name = $_FILES['userfile']['name'][$i];

【讨论】:

  • 但我想自动命名文件。如果用户输入名称hello.xlsx,系统会自动将名称hello.xlsx更改为调整为指定格式的名称
  • 我的意思是构建逻辑以单独创建动态文件名,并在调用move_uploaded_files 时给出该名称。如果你能解释你的文件名有多“动态”,那将会很有帮助。这有什么逻辑吗?
【解决方案2】:

好的,我有一个名为“格式”的表格。表格格式包含一些数据,例如 A、B、C、D。只有数据在“格式”表格中。然后在我上面帖子的脚本中是文件上传过程,其中文件的形式是/扩展名xlsx/xls(ms.excel文件)。上传文件名为 Hello.xlsx 的用户将更改为 A.xlsx。并且要上传第二列将更改为 B.xlsx 等等

image

【讨论】:

  • 而不是 $file_name = $_FILES['userfile']['name'][$i];添加此代码 $_FILES['userfile']['name']= 'File-name';在for循环中
猜你喜欢
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2016-05-20
  • 2017-12-23
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多