我正在尝试使用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();
}
....
上传功能在我的本地主机上正常运行。但是,当我尝试在服务器上上传.docx文件时,我会收到“您尝试上传的文件类型”。
我可以在服务器上传其他文件,代码是我本地的精确副本。我也搜索了一下,发现有些人将.docx的mime更改为:
'docx' => array('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/octet-stream')
但似乎没有解决问题。可能出现什么问题,如何解决问题以便解决此问题?
答案 0 :(得分:12)
尝试为application/zip
添加此mime类型:application/config/mimes.php
到docx
。这个对我有用。
如果没有帮助。打开system/libraries/Upload.php
(第205行)并执行此操作:
var_dump($this->file_type);
exit();
您将看到.docx的文件类型,需要将其添加到config中的docx mimes列表中。
答案 1 :(得分:0)
打开application/config/mimes.php
文件,并使用以下mime类型更改doc和docx的mime类型数组。
'doc' => array('application/msword', 'application/octet-stream'),
'docx' => array('application/msword', 'application/octet-stream','application/vnd.openxmlformats-officedocument.wordprocessingml.document'),
只需将doc和docx元素值替换为上述mime类型数组即可。