aniven 发表于 2012-12-24 17:30:06

Upload库是否有Bug?

本帖最后由 aniven 于 2012-12-25 08:39 编辑

CI通过Upload库进行上传文件,设置的allowed_types里包含xls文件,但是部分电脑上传提示文件类型不被允许,这些不能上传的电脑有两个特征,1是XP系统,2是没有安装Microsoft Excel(另一台上传正常的电脑2003系统,有装Excel但是xls的默认关联不是Office Excel而是WPS),检查post headers发现,在Request payload中Content-Type不一致,都是使用同个版本的Chrome浏览器,请问这是Upload.php的Bug?还是系统问题,如果是系统问题,什么因素决定Content-Type的值?

1.成功
Content-Disposition: form-data; name="userfile"; filename="1234.xls"
Content-Type: application/vnd.ms-excel

2.失败
Content-Disposition: form-data; name="userfile"; filename="1234.xls"
Content-Type: application/octet-stream

Hex 发表于 2012-12-25 11:14:31

你要设置 mimes 在 config 目录下

mini520 发表于 2012-12-25 13:26:43

设置 一下的啊!!!

qingxin 发表于 2012-12-25 17:19:10

Hex 发表于 2012-12-25 11:14 static/image/common/back.gif
你要设置 mimes 在 config 目录下

不会出现漏洞吗?
Content-Type: application/octet-stream表示所有文件类型啊

Hex 发表于 2012-12-25 18:32:37

qingxin 发表于 2012-12-25 17:19 static/image/common/back.gif
不会出现漏洞吗?
Content-Type: application/octet-stream表示所有文件类型啊

由于你的浏览器没有上报正确的 mime 你只能使用这个方法。
如果不检测 mime 和设置成这样是没区别的。
如何处理要自己权衡,呵呵

aniven 发表于 2013-1-17 16:08:02

mimes.php里本来就是这样的:

'xls'        =>        array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),

不清楚为什么会变成 application/octet-stream,我现在只能开放所有文件类型。
页: [1]
查看完整版本: Upload库是否有Bug?