【问题标题】:Codeigniter: Cannot upload files, Undefined IndexCodeigniter:无法上传文件,未定义索引
【发布时间】:2017-04-11 09:36:33
【问题描述】:

我似乎无法在 codeigniter 中上传文件。我不知道问题是否出在$_FILES,当我尝试做print_r($_FILES) 它显示一个空数组。

附加控制器和下面的视图:

控制器

public function upload_files(){


    $this->load->library('upload');     
    $filesCount = count($_FILES['userfile']['name']);

    for($i = 0; $i < $filesCount; $i++){
        $pathToUpload="Path/to/folder";
        $folder=$id;
        $uploadPath=$this->create_dir($pathToUpload,$folder);   
        $_FILES['userFile']['name'] = $_FILES['userfile']['name'][$i];
        $_FILES['userFile']['tmp_name'] = $_FILES['userfile']['tmp_name'][$i];
        $_FILES['userFile']['size'] = $_FILES['userfile']['size'][$i];
        $config['upload_path'] = $uploadPath;
        $config['allowed_types'] = '*';

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

    }
}

查看

<form action="<?php echo base_url(); ?>index.php/Controller_name/upload_files" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-lg-4">Attach Documents</label>
<div class="col-lg-4">
    <input type="file" class="form-control" size="20" name="usefile[]" multiple="multiple" />
</div>
</div> 
</form>

任何帮助将不胜感激。我似乎无法弄清楚为什么 $_FILES 没有被发布

【问题讨论】:

  • 你能设置 $config["allowed_types"] = "*";
  • 在检查文件计数之前在if statement中使用iseet($_FILES['userfile'])
  • 我已经加了*
  • @Gaurav 如果我这样做,那么不会有错误,文件仍然不会上传
  • @davidnoronha 从第一行删除加载库代码。还要检查 view 输入 name="usefile"controller $_FILES['userfile'] 应该相同。

标签: php codeigniter file


【解决方案1】:

我已对代码进行了更正。

  1. Remove 1st $this-&gt;load-&gt;library('upload');
  2. 创建 $_FILES 数据的副本。 $files = $_FILES;
  3. 更正此行。 $pathToUpload="./Path/to/folder/";
  4. 将输入字段名称从name="usefile[] 更正为name="userFile[]
  5. 更新了视图代码。

控制器代码:

public function upload_files(){


    //$this->load->library('upload');     
    $filesCount = count($_FILES['userfile']['name']);
    $files = $_FILES;
    for($i = 0; $i < $filesCount; $i++){
        $pathToUpload="./Path/to/folder/";
        $folder=$id;
        $uploadPath=$this->create_dir($pathToUpload,$folder);   
        $_FILES['userFile']['name'] = $_FILES['userfile']['name'][$i];
        $_FILES['userFile']['tmp_name'] = $_FILES['userfile']['tmp_name'][$i];
        $_FILES['userFile']['size'] = $_FILES['userfile']['size'][$i];
        $config['upload_path'] = $uploadPath;
        $config['allowed_types'] = '*';

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

    }
}

查看文件。

<form action="<?php echo base_url(); ?>index.php/Controller_name/upload_files" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-lg-4">Attach Documents</label>
<div class="col-lg-4">
    <input type="file" class="form-control" size="20" name="usefile[]" multiple="multiple" />
<input type="hidden" name="key" value="123"/>
<input type="submit" name="upload" value="Upload"/>
</div>
</div> 
</form>

【讨论】:

  • 嘿,我设法让它工作了。方法有问题。
猜你喜欢
  • 1970-01-01
  • 2014-05-14
  • 2014-04-29
  • 2013-10-02
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
相关资源
最近更新 更多