Php Codeigniter“您没有选择要上载的文件。”

Php Codeigniter“您没有选择要上载的文件。”,php,codeigniter,Php,Codeigniter,我尝试使用codeigniter上传文件,无论我尝试了什么,我都会收到错误消息,表明我没有选择文件,而实际上我选择了 我的控制器看起来是这样的 public function editHeader() { $this->require_auth(); $config['upload_path'] = './files/'; $config['allowed_types'] = 'gif|jpg|png'; $co

我尝试使用codeigniter上传文件,无论我尝试了什么,我都会收到错误消息,表明我没有选择文件,而实际上我选择了

我的控制器看起来是这样的

public function editHeader()
{
    $this->require_auth();      

    $config['upload_path'] = './files/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '1000KB';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

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

            if ( ! $this->upload->do_upload('userfile'))
            {
                $error = array('error' => $this->upload->display_errors());

                var_dump($error);
            }
            else
            {
                $data = array('upload_data' => $this->upload->data());
                echo('yeah!');
            }               
} 
我的html只是一个codeigniter表单

<?foreach($header as $row) :?>
      <?=form_open_multipart('admin/editHeader');?>
         <input class="waitForLoad fadeInDown" type="file" name="userfile"  />
        <input type="submit" name="submit" value="Change" class="btn btn-success pull-right" />
      </form>
<?endforeach;?>
我尝试过正常的解决方案,比如增加最大上传大小,以及将上传名称放在do_上传功能中,但似乎什么都不起作用,我正准备拔掉头发。感谢您的帮助

上传文件时,您需要使用form\u open\u multipart,而不是form\u open。

您必须使用 因为如果我们在表单中写入,我们将在控制器中获得$u文件

添加后,如果您打印\u r$\u文件,那么您将获得数组


当我们进行与图像上传或验证码相关的工作时,即使我没有上传多个文件,这也是必要的?这实际上不起作用。。。它仍然给我同样的错误message@zazvorniki是的。multipart与文件的数量无关,上传任何文件都需要multipart。从文档中:默认情况下,上载例程希望文件来自名为userfile的表单字段,并且表单必须是多部分类型,但奇怪的是,它仍然无法工作。您是否在$\u文件中看到它?