嗨,我已经建立一个网站大约 3 个月了,今天让我的女朋友用虚拟内容填充它以进行测试。在那里,她很高兴地测试和上传文件,突然,一旦她完成了大约 8 篇文章,上传者决定不更改代码等,开始拒绝上传,说文件类型是不允许的。
现在不用说我已经通过这个上传图像一个多月了,这是第一次出现这个问题。更令人困惑的是,我在其他部分使用 CI 上传类,具有相同的 mime 参数,而且效果很好!我检查了 $_FILES 中的 mime,这是 image/jpg 或 image/png 等,所有这些都被 CI 识别。我也看到了 CI 2.1.0 中的错误,但我在 2.1.1 上,我认为错误已修复(或未修复),因为之前错误所在的上传库中的代码略有不同。
无论哪种方式,我都推断这是一个 mime 错误,因为将允许的类型配置参数设置为 * 工作正常!当然,这远非理想,因为潜在的安全漏洞是惊人的。我现在正处于关键时刻,因为我还有其他工作要做。我已经附上了处理此上传的代码部分,以防我做一些非常愚蠢的事情,但如果其他人不知从哪里发现了这个问题,我很想知道任何解决方法/解决方案......还有关于这怎么可能只是抬起它丑陋的头来,那就太好了。我经常与这些事情的神秘面作斗争。
if(isset($_FILES['article_main_image']) && $_FILES['article_main_image']['size'] > 0){
$filename = $this->input->post('article_title') . '_' . time();
$config['upload_path'] = './resource/data/tmpstore/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['file_name'] = $filename;
$this->load->library('upload', $config);
if ($this->upload->do_upload('article_main_image'))
{
$uploadData = $this->upload->data();
$filename = $uploadData['file_name'];
//Other stuff here
} else {
$this->session->set_flashdata('validationErrors', $this->upload->display_errors());
$this->session->set_flashdata('postVars', $this->input->post());
redirect('/admin/contenteditor/editarticle?id=' . $this->input->post('articleId'));
}
}