【问题标题】:Get filename as array after upload in codeigniter在codeigniter中上传后获取文件名作为数组
【发布时间】:2017-02-15 02:27:14
【问题描述】:

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

这是代码:

控制器:

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);,它只会显示,

参考链接:Multiple files upload (Array) with CodeIgniter 2.0

【问题讨论】:

  • do_upload控制器显示var_dump($names)的结果
  • @RejoanulAlam string(1) ","。这是它的显示结果

标签: mysql arrays codeigniter foreach image-upload


【解决方案1】:

$this-&gt;upload-&gt;do_upload() 只返回真或假。您必须使用$name_array[] = $this-&gt;upload-&gt;data('file_name'); 获取数据

【讨论】:

  • 很高兴它有帮助!
猜你喜欢
  • 2017-01-12
  • 2020-08-17
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多