CodeIgniter上传文件错误:您没有选择要上传的文件

时间:2012-07-05 13:33:03

标签: codeigniter upload codeigniter-2 filesize

之前已经问过这个问题,但问题不是这个问题。 我有一个很好的上传系统(我正在上传CSV并解析它们)。 但是,如果文件大小超过5Mb,它会给我错误: 你没有选择要上传的文件

如果它不足,文件上传并解析就好了。

我首先将我的php.ini设置设置为128M,现在设置为99999999999999999999 我还将CI配置maz_size设置为9999999999 (我使用的是更真实的数字,但我想确定) 我已经在每次更改时重新启动了apache但仍然存在问题。

我看到了错误: 您没有选择要上传的文件 当出现文件大小问题时会显示,但我不知道在哪里检查这个。

最后,如果我回复phpinfo(),我可以确认最大上传是999999999999999

拔掉我的头发......

还有什么呢?

///更新:代码添加 我有两种方法可以逐行解析csv,或者将整个文件直接转储到数据库中,然后再将其排序。这两个工作,并通过配置设置选择。这就是行:$ this-> config-> item('import_type')用于。欢迎任何想法!

    public function upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'txt|csv|xls|xlsx';
    $config['max_size'] = '999999999999999999999';

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

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('feed_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());

        if ($this->config->item('import_type') == 'db') {
            $result = $this->model_feed->capture_file($this->input->post('feed_name'), $data['upload_data']['full_path']);
        } else {
            $result = $this->capture_feeds($this->input->post('feed_name'), $data['upload_data']['full_path']);
        }

        if ($result) {
            $this->load->view('feed_upload_success', $data);
        } else {
            $this->load->view('feed_form', array('error' => 'The file you supplied does not match the data structure we were expecting.' ));
        }
    }
}

2 个答案:

答案 0 :(得分:4)

你必须在php.ini上增加post_max_size

http://www.php.net/manual/en/ini.core.php#ini.post-max-size

答案 1 :(得分:0)

我有同样的问题,我做的是在$this->upload->do_upload()函数我传递了输入文件的名称,我的意思是从表单输入类型文件名。假设我将名称命名为avatar,因此我将函数用作$this->upload->do_upload('avatar')