关于Codeigniter上传文件类型的问题

问题描述:最近在使用Codeigniter自带的上传类时 提示上传文件类型不正确 我上传的Excel文档


具体操作:

我自己的上传文件类型配置

$config ['allowed_types'] = 'xls|xlsx|xl';

但是在我上传一个已.xls后缀的Excel时一直提示文件类型不正确,可是xls明明在allowed_types里面啊,经过一番查阅,终于发现问题所在~


在上传时我首先 print_r($_FILES ) 结果如下:

Array ( [userfile] => Array ( [name] => Template.xls[type] => application/kset[tmp_name] => C:\Windows\temp\phpACC.tmp [error] => 0 [size] => 7680 ) )


可以看到这个文件type是application/kset这种类型的 之所以报错就是因为这种类型的Excel不在一个文件内,哪个文件呢?

请打开application/config/mimes.php找到xls文件类型的数组

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

可以看到并没有这个东西 application/kset


现在把它加进去

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



最后:不同的浏览器对文件的解释也不同 最好在不同浏览器打印 $_FIELS 看结果 把对应的type添加进mimes.php的数组即可。application/octet-stream

也是我发现的其中一个不存在的类型,所以我加了进去,问题解决。

有疑问的同学,请给我留言。



分享至
2014-01-07 发布 ┊ 6541 人浏览 ┊ 0 人评论 ┊ 来源:原创 ┊ 收藏
返回顶部