CodeIgniter再次上传类

时间:2012-09-23 11:40:49

标签: php codeigniter upload

您好我已经建立了一个网站大约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'));
    }
}

1 个答案:

答案 0 :(得分:0)

尝试使用print_r($uploadData);调试上传数据阵列并查看file_type所说的内容,也许她尝试上传的图片可能没有正确的mime类型。