正在查看: 标记有标签 bug 的文章(第 1 页 / 共 1 篇)

CodeIgniter上传类库的一个Bug

这几天重构博客程序的时候,发现了一个CodeIgniter默认上传类的BUG。很奇怪的是,一直到前些天CI官方最新发布的1.7.2,此BUG仍未修正,特此记录。

症状:只能上传图片后缀的文件,其他类型文件(比如.zip,.tar.gz)无法通过验证,就算你将这些类型添加进了$config['allowed_types']。

涉及到的CodeIgniter版本:1.7.1;1.7.2。

原因:Upload Class中的is_allowed_filetype()方法有逻辑错误。

解决方案

1、如果你不想动CI的系统源码,那么就将除图片类型之外的其他后缀,放到图片类型之前,比如:

$config['allowed_types'] = 'zip|gz|png|gif|jpg';(正确)

$config['allowed_types'] = 'png|gif|jpg|zip|gz';(错误)

请注意以上暗红色部分的位置。

2、对Upload.php开刀并修改is_allowed_filetype()的判断逻辑,解决办法在这个帖子里面:

http://codeigniter.com/forums/viewthread/113029/

这个BUG在BUG Tracker存在了那么久,开发者竟然不采纳的……What can I say?