这个问题之前已经被问过,但不是这个确切的问题。我有一个很好的上传系统(我正在上传 CSV 并解析它们)。但是,如果文件大小超过 5Mb,则会出现错误:您没有选择要上传的文件
如果它在下面,则文件上传和解析就好了。
我首先将我的 php.ini 设置设置为 128M,现在设置为 99999999999999999999 我还将我的 CI 配置 maz_size 设置为 9999999999(我使用的是更实际的数字,但我想确定)我已经重新启动了 apache ini 发生了变化,但问题仍然存在。
我已经看到错误:当存在文件大小问题时,会显示您没有选择要上传的文件,但我不知道在哪里可以检查。
最后,如果我回显 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.' ));
}
}
}