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

369 查看

$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:WindowstempphpACC.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/octet-stream','application/kset'),

有时候上传图片失败,发现图片类型是application/octet-stream,于是修改

'jpeg'  =>  array('image/jpeg', 'image/pjpeg','application/octet-stream'),
'jpg'   =>  array('image/jpeg', 'image/pjpeg','application/octet-stream'),
'jpe'   =>  array('image/jpeg', 'image/pjpeg','application/octet-stream'),
'png'   =>  array('image/png',  'image/x-png','application/octet-stream'),

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