好吧,我相信这本身并不是一个Codeigniter问题,因为它更像是一个mime类型.
我正在尝试上传文件,xls(或xlsx)文件和mime-type浏览器,php报告是application/octet-stream而不是application/excel,application/vnd.ms-excel或application/msexcel对于xls文件.当然,codeigniter上传插件会在尝试将文件扩展名与mime-type匹配时报告错误(文件类型无效).
奇怪的(est)可能是相同的代码工作了几个月,现在停止使用最新的Chrome(16.0.912.77),Firefox(10.0)和IE9.
有没有人有相同(或类似)的问题,并谨慎分享解决方案?
非常感谢你.PS:我不会提供代码,因为它不是真正的代码问题,但如果有必要,我会上传一些代码片段.
编辑
这可能是相关的:该错误不相同的浏览器上发生了类似的配置,但与MS Office,而不是自由报办公室(我的电脑).它也不会发生在基于GNU/Linux的+ Libre Office系统上.那么,是不是Windows在开源套件上很难玩,或者自由办公室改变了mime类型只是为了它呢?
我正在尝试使用Codeigniter中的上传帮助程序上传.docx.
public function upload($id,$type){
$folder = $type;
$config['upload_path'] = RESOURCE_PATH . $folder;
$config['allowed_types'] = 'pdf|doc|docx';
$config['max_size'] = '100000';
$this->CI->load->library('upload',$config);
//$this->load->library('upload', $config);
if (!$this->CI->upload->do_upload('userfile')){
echo $this->CI->upload->display_errors();
}
....
Run Code Online (Sandbox Code Playgroud)
上传功能在我的本地主机上正常工作.但是,当我尝试在服务器上上传.docx文件时,我得到"您尝试上传的文件类型是不允许的".
我可以在服务器上传其他文件,代码是我本地的精确副本.我也搜索了一下,发现有些人将.docx的mime更改为:
'docx' => array('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/octet-stream')
Run Code Online (Sandbox Code Playgroud)
但这似乎没有解决问题.可能出现什么问题,如何解决问题以便解决此问题?