CodeIgniter将所有上传文件识别为application/octet-stream的问题

最近使用 CodeIgniter 的文件上传类时,遇到了一个问题,不管上传什么类型的文件,都会提示“The filetype you are attempting to upload is not allowed.”。实际上,我已经在文件上传类的配置中,将所需要上传的文件类型写到了 allowed_types 的配置项中。而且,通过开启 CodeIgniter 的调试信息($this->output->enable_profiler(TRUE);),发现不管上传的是什么类型的文件,CodeIgniter 都会将文件识别为 application/octet-stream 的类型。搜集了一些资料,原来原因是PHP的配置问题,也就是说PHP没有能力识别上传的文件的类型,自然 CodeIgniter 也就无法识别文件类型了,最后把解决办法分享如下:

在php.ini中开启fileinfo的拓展来获取正确的文件类型:

//windows
extension = php_fileinfo.dll

//linux
extension = fileinfo.so

相关文章: