Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter:无法上载文件,未定义索引_Php_Codeigniter_File - Fatal编程技术网

Php Codeigniter:无法上载文件,未定义索引

Php Codeigniter:无法上载文件,未定义索引,php,codeigniter,file,Php,Codeigniter,File,我似乎无法在codeigniter中上载文件。我不知道问题是否在于$\u文件,当我尝试执行打印($\u文件)时,它会显示一个空数组 连接控制器和下面的视图: 控制器 public function upload_files(){ $this->load->library('upload'); $filesCount = count($_FILES['userfile']['name']); for($i = 0; $i < $filesC

我似乎无法在codeigniter中上载文件。我不知道问题是否在于
$\u文件
,当我尝试执行
打印($\u文件)
时,它会显示一个空数组

连接控制器和下面的视图:

控制器

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();

    }
}
public函数上传_文件(){
$this->load->library('upload');
$filescont=count($_FILES['userfile']['name']);
对于($i=0;$i<$filescont;$i++){
$pathToUpload=“Path/to/folder”;
$folder=$id;
$uploadPath=$this->create_dir($pathToUpload,$folder);
$\u文件['userFile']['name']=$\u文件['userFile']['name'][$i];
$\u FILES['userFile']['tmp\u name']=$\u FILES['userFile']['tmp\u name'][$i];
$\u文件['userFile']['size']=$\u文件['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>

我已经用更正更新了代码

  • 删除第一个$this->load->library('upload')
  • 创建$\u文件数据的副本<代码>$files=$\u文件
  • 更正这行<代码>$pathToUpload=“/Path/to/folder/”
  • 将输入字段名从
    name=“usefile[]
    更正为
    name=“userFile[]
  • 更新了视图代码
  • 控制器代码:

    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();
    
        }
    }
    
    public函数上传_文件(){
    //$this->load->library('upload');
    $filescont=count($_FILES['userfile']['name']);
    $files=$\u文件;
    对于($i=0;$i<$filescont;$i++){
    $pathToUpload=“/Path/to/folder/”;
    $folder=$id;
    $uploadPath=$this->create_dir($pathToUpload,$folder);
    $\u文件['userFile']['name']=$\u文件['userFile']['name'][$i];
    $\u FILES['userFile']['tmp\u name']=$\u FILES['userFile']['tmp\u name'][$i];
    $\u文件['userFile']['size']=$\u文件['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>
    

    能否设置$config[“允许的类型”]=“*”;在检查文件计数之前,请在
    if语句中使用
    iseet($\u files['userfile'])
    。我已经添加了
    *
    @Gaurav。如果我这样做,那么将不会出现错误,文件也不会出现错误upload@davidnoronha从第一行删除加载库代码。另外,签入视图输入
    name=“usefile”
    和控制器
    $\u文件['userfile']
    应该是相同的。嘿,我设法让它工作了。方法中存在一个问题。