tottyandbaty 发表于 2009-6-29 16:25:02

CI的文件上传类的bug

这是原文件567-573行


if (in_array($val, $image_types))
   {
    if (getimagesize($this->file_temp) === FALSE)
    {
   return FALSE;
    }
   }




看注释说是检查图片,实际上你设置允许的文件类型中还有其他类型的,比如pdf,txt 等,

这个验证就不行了,原因是只要不是指定的图片类型的都会返回false

所以就不能上传其他类型的文件

修改方法

将567行:

改为:in_array($val, $image_types)&&$this->is_image()即可

Hex 发表于 2009-6-29 16:47:45

不能上传其他类型,不是这里造成的吧?有待大家验证。

tottyandbaty 发表于 2009-6-29 17:17:36

这里确实是这样的哦,昨天我才发现,后来去官网看了下,确实有这个bug

很显然那里检查图片类型的时候前提条件是要满足必须是图片

tottyandbaty 发表于 2009-6-29 17:22:16

还有那个分页类的 bug,
如果当前url是:http://localhost/blog/see/1
如果我在IE里面这样敲:http://localhost/blog/see/1.html,会真么样那?

Hex 发表于 2009-6-29 18:58:45

如果设置过 URL 后缀,CI 会自动处理的。

zhoulei 发表于 2009-6-30 14:47:27

可以上传PDF,TXT方法是要把这样的格式放在GIF,JPG前面.如$config['allowed_types']='zip|txt|pdf|doc|gif|jpg|png';具体为什么要这样没看懂:dizzy:.

tottyandbaty 发表于 2009-6-30 16:16:52

$config['allowed_types']='zip|txt|pdf|doc|gif|jpg|png'; 这样写是可以,只是调换了顺序而已,当然不是解决问题的根本办法,仔细想想那个文件的流程,你就可以明白了

乌有 发表于 2009-7-2 09:08:28

我把其它允许的文件类型放在前面了,但还是无法上传.

Hex 发表于 2009-7-2 10:08:29

无法上传请看 http://codeigniter.org.cn/forums/thread-442-1-1.html

80后 发表于 2012-4-7 16:00:00

确实有这个问题额。
上传不了txt的后缀类型的,MIME文件里已经有这个了,可能真的是BUG吧。
页: [1]
查看完整版本: CI的文件上传类的bug