codeigniter文件上传时$config["allowed_types"]设置问题

Codeigniter上传同一类型文件时火狐正常,然而其他浏览器不行,打印了一下错误:The filetype you are attempting to upload is not allowed(文件类型不允许).明明设置过此类型的文件了啊,经过搜索资料有人说和文件类型顺序有关(把图片类型放在前面),像这样:$config["allowed_types"]='jpg|gif|doc|docx|ppt|pptx|xls|xlsx';我觉得没有道理啊,苦苦查找看到有人说打印一下$_FILES['userfile']['type'],我试了一下,发现了其中奥秘,得出如下结论:

1、 不同的浏览器提供的文件的 MIME 类型不同,上传时打印$_FILES['userfile']['type']时,不同的浏览器结果可能会不同,不同时期的浏览器结果也可能不同。去年开发的项目今年上传文件就出现了问题。由于codeigniter是国外开发的,在配置文件application/config/mimes.php中没有国内浏览器(如360)上传类型的配置,所以一直出现错误。解决方式如下:

打开application/config/mimes.php,找到某一浏览器不能上传的类型后缀配置,如.doc打印出$_FILES['userfile']['type'],打印结果:application/kswps此时在.doc配置下添加

原配置:

'doc'  =>  array('application/msword','application/octet-stream'),

修改为:

'doc'  =>  array('application/msword','application/octet-stream','application/kswps'),

然后保存,这样就支持多个浏览器上传了。其他类型文件也是这个过程。

                                         

                                                                                                                                                                                                                                ------2014-02-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值