问题描述:最近在使用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
也是我发现的其中一个不存在的类型,所以我加了进去,问题解决。
有疑问的同学,请给我留言。