您好我已经建立了一个网站大约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'));
}
}
答案 0 :(得分:0)
尝试使用print_r($uploadData);
调试上传数据阵列并查看file_type
所说的内容,也许她尝试上传的图片可能没有正确的mime类型。