【问题标题】:CodeIgniter Upload Class againCodeIgniter 再次上传类
【发布时间】:2012-09-23 11:40:49
【问题描述】:

您好,我已经建立一个网站大约 3 个月了,今天让我的女朋友用虚拟内容填充它以进行测试。在那里,她正在愉快地测试和上传文件,但突然间,她完成了大约 8 篇文章,上传者决定不更改代码等,开始拒绝上传,说文件类型不允许。

现在不用说我已经通过这个上传图像一个多月了,这是第一次出现这个问题。更令人困惑的是,我在其他部分使用具有相同 mime 参数的 CI 上传类,它工作正常!我检查了 $_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'));
    }
}

【问题讨论】:

  • 如果将 mimes.php 中的 jpg/jpeg(或任何图像类型)mime 更改为 array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),会发生什么?
  • 这仍然是个问题吗?您现在升级到最新的 CI 了吗? (2.1.2)。

标签: php codeigniter upload


【解决方案1】:

尝试使用print_r($uploadData); 调试您的上传数据数组,看看file_type 说了什么,也许她尝试上传的图像可能没有正确的mime 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2011-08-03
    • 2013-10-20
    • 2013-02-17
    相关资源
    最近更新 更多