【问题标题】:codeigniter upload files from multiple inputcodeigniter 从多个输入上传文件
【发布时间】:2017-03-26 12:45:08
【问题描述】:

我想上传具有多个输入的文件。我试过下面的代码,但是文件没有上传,我无法获取上传目录。

HTML

<input type="file" name="userfile[]" size="20" />

控制器

public function detailTugasInput($idKelas,$id){
    $this->load->model('tugass');
    $records = $_FILES['userfile'];
    //var_dump($records); die();
    $config['upload_path']          = './file/';
    $config['allowed_types']        = 'pdf|doc|txt|jpg|png';
    $config['max_size']             = 0;
    $config['max_width']            = 1024;
    $config['max_height']           = 768;

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

    foreach ($_FILES as $key => $value) {
        $upload_data = $this->upload->data();
        $file_ary = array(
        'nama_kembali' => $value['name'],
        'file_kembali' => $value['tmp_name']
        );
    }
}

我也试过用下面这段代码获取上传的数据,但是为什么总是出现错误呢?

$checked_arr = $_POST['userfile'];

【问题讨论】:

  • 你在form标签中使用过enctype=multipart/form-data吗?例如&lt;form action="&lt;form_action_url&gt;" method="&lt;form_method&gt;" enctype="multipart/form-data"&gt;
  • 是的,我已经用过了
  • 您是否在$records 中获取值?
  • 是的,我尝试将值放入 $records 但我无法从中获取上传的目录

标签: codeigniter upload


【解决方案1】:

试试下面的代码

HTML

<input type="file" class="form-control" name="userfile[]" multiple />

Controller

public function detailTugasInput($idKelas, $id){

    $this->load->model('tugass');

    if(!empty($_FILES['userfile']['name'])) {

        $filesCount = count($_FILES['userfile']['name']);

        for($i = 0; $i < $filesCount; $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];

            $config['upload_path'] = './file/';
            $config['allowed_types'] = 'pdf|doc|txt|jpg|png';

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

            $this->upload->do_upload('userFile');
            if($this->upload->do_upload('userFile')){
                $fileData = $this->upload->data();
                $uploadData[$i]['file_name'] = $fileData['file_name'];
                $uploadData[$i]['created'] = date("Y-m-d H:i:s");
                $uploadData[$i]['modified'] = date("Y-m-d H:i:s");
            }

        }
    }
}

如需更多支持,请Check This

【讨论】:

  • 成功了!!谢谢!!但是如何获取上传的目录?
  • $config['upload_path']存放文件上传的路径
  • 我的意思是上传文件后,如何将每个上传的路径存储到数据库?
猜你喜欢
  • 2019-07-23
  • 2014-09-26
  • 2019-10-28
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 2015-01-28
  • 2013-10-18
  • 2019-05-18
相关资源
最近更新 更多