上传到codeigniter后获取文件名作为数组

nzk0hqpo  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(335)

上载文件后返回文件名时遇到问题。当我按提交按钮时,它会将图像上传到文件夹,但我没有得到文件名。
代码如下:
控制器:

public function add()
    {
        $title = $this->input->post('title');
        $files = $this->do_upload();
        //print_r($files);
        $this->user->in($title,$files);
    }

public function do_upload()
    {       

        $name_array = array();
        $files = $_FILES;
        $cpt = count($_FILES['userfile']['name']);
        for($i=0; $i<=$cpt-1; $i++)
        {           
           $_FILES['userfile']['name']= $files['userfile']['name'][$i];
           $_FILES['userfile']['type']= $files['userfile']['type'][$i];
           $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];
           $_FILES['userfile']['error']= $files['userfile']['error'][$i];
           $_FILES['userfile']['size']= $files['userfile']['size'][$i];    

           $this->upload->initialize($this->set_upload_options());
           $data = $this->upload->do_upload();
           $name_array[] = $data['file_name'];
        }

        $names = implode(',', $name_array);
        return $names;
     }

private function set_upload_options()
     {   
        $config = array();
        $config['upload_path'] = './portfolio/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size']      = '0';
        $config['overwrite']     = FALSE;

        return $config;
     }

型号:

public function in($title,$file)
     {
        foreach ($title as $key => $n) {

                        $insert[] = array(
                                'title' => $n,
                                'file' => $file[$key]
                                );
            }
            $this->db->insert_batch('title',$insert);
     }

查看:

<?php echo form_open_multipart('location/add'); ?>
<div>
  <input type="text" name="title[]"><br>
  <input type="file" name="userfile[]">
</div>
<br><br>
<div>
  <input type="text" name="title[]"><br>
  <input type="file" name="userfile[]">
</div><br>
<input type="submit" name="" value="enter">
<?php echo form_close(); ?>

如果我试着打印 $files 作为 print_r($files); 它只是展示了一个 , 只是。
参考链接:使用codeigniter 2.0上传多个文件(数组)

pb3skfrl

pb3skfrl1#

$this->upload->do_upload() 仅返回true或false。你必须用它来获取数据 $name_array[] = $this->upload->data('file_name');

相关问题