代码之家  ›  专栏  ›  技术社区  ›  Vahid Najafi

多表单上传:在codeigniter中分别获取每个文件名

  •  1
  • Vahid Najafi  · 技术社区  · 9 年前

    我想上传一些文件。我使用代码点火器:

    Html:

    <input type="file" name="file1" />
    <input type="file" name="file2" />
    

    php:

    $config['upload_path'] = './upload/';
    $path = $config['upload_path'];
    $config['allowed_types'] = 'gif|jpg|jpeg|png';
    $config['encrypt_name'] = 'TRUE';
    $this->load->library('upload', $config);
    
    foreach ($_FILES as $key => $value) {
            if (!empty($value['tmp_name']) && $value['size'] > 0) {
                if (!$this->upload->do_upload($key)) {
                   // some errors
                } else {
                    // Code After Files Upload Success GOES HERE
                    $data_name = $this->upload->data();
                    echo $data_name['file_name'];
                }
            }
        }
    

    当我想的时候 echo 文件名,我知道 1.jpg 2.jpg 。但我想将它们分开并插入数据库。

    我该怎么做?谢谢:)

    1 回复  |  直到 9 年前
        1
  •  3
  •   bestprogrammerintheworld    9 年前

    从中添加值 $data_name['file_name'] 在foreach循环之后,执行insertbatch。

    类似于:

    $filename_arr = array();
    foreach ($_FILES as $key => $value) {
            if (!empty($value['tmp_name']) && $value['size'] > 0) {
                if (!$this->upload->do_upload($key)) {
                   // some errors
                } else {
                    // Code After Files Upload Success GOES HERE
                    $data_name = $this->upload->data();
                    $filename_arr[] = $data_name['file_name'];
                }
            }
        }
    
    $this->db->insert_batch('mytable', $filename_arr);