Codeigniter上载不接受.doc文件

Codeigniter上载不接受.doc文件,codeigniter,file-upload,mime-types,Codeigniter,File Upload,Mime Types,我尝试上载时出现以下错误: “不允许您尝试上载的文件类型。” 这是我的默剧。doc: $sntError = $this->uploadFile($id,'notes','doc|pdf|docx'); private function uploadFile ($id,$input,$extensions) { $this->load->library('upload'); $config['allowed_types'] = $extensions; $config[

我尝试上载时出现以下错误:

“不允许您尝试上载的文件类型。”

这是我的默剧。doc:

$sntError = $this->uploadFile($id,'notes','doc|pdf|docx');

private function uploadFile ($id,$input,$extensions) {
 $this->load->library('upload');
 $config['allowed_types'] = $extensions;
 $config['upload_path'] = './upload/sermon/'. $input;
 $config['file_name'] = $input .'-'. $id;
 $config['max_size'] = '10000';
 $config['overwrite'] = true;
 $this->upload->initialize($config);
 $uploaded = $this->upload->do_upload($input);

 $errors = $this->upload->display_errors('<div class="error">', '</div>');

 if (!$errors && $uploaded) {
  $fileData = $this->upload->data();
  $this->saveSermonAttachments($id,$input,$fileData['file_name']);
 } else {
  return $errors;
 }
} 
'doc'=>array('application/msword','application/doc','application/text','application/vnd.msword','application/word','application/winword','application/vnd.ms word','application/x-msw6','application/x-msword')

正如你所看到的,我已经试图通过添加更多的哑剧来弥补这一点。我不知道是什么问题…文件是.doc。请注意,上传pdf的工作!我也在用mac电脑

这是我的代码:

$sntError = $this->uploadFile($id,'notes','doc|pdf|docx');

private function uploadFile ($id,$input,$extensions) {
 $this->load->library('upload');
 $config['allowed_types'] = $extensions;
 $config['upload_path'] = './upload/sermon/'. $input;
 $config['file_name'] = $input .'-'. $id;
 $config['max_size'] = '10000';
 $config['overwrite'] = true;
 $this->upload->initialize($config);
 $uploaded = $this->upload->do_upload($input);

 $errors = $this->upload->display_errors('<div class="error">', '</div>');

 if (!$errors && $uploaded) {
  $fileData = $this->upload->data();
  $this->saveSermonAttachments($id,$input,$fileData['file_name']);
 } else {
  return $errors;
 }
} 
$sntError=$this->uploadFile($id,'notes','doc | pdf | docx');
私有函数上载文件($id、$input、$extensions){
$this->load->library('upload');
$config['allowed_types']=$extensions;
$config['upload_path']='./upload/sermon/'.$input;
$config['file_name']=$input.-'.$id;
$config['max_size']='10000';
$config['overwrite']=true;
$this->upload->initialize($config);
$upload=$this->upload->do_upload($input);
$errors=$this->upload->display_errors(“”,”);
如果(!$errors&&$upload){
$fileData=$this->upload->data();
$this->saveSermonAttachments($id,$input,$fileData['file_name']);
}否则{
返回$errors;
}
} 

我确实打印了($fileData);找出.doc文件的类型。它是“text/plain”,所以我把它添加到我的mimes.php中,它解决了我的问题

我确实打印了r($fileData);找出.doc文件的类型。它是“text/plain”,所以我把它添加到我的mimes.php中,它解决了我的问题

更改扩展的顺序。

更改扩展的顺序。

将此添加到config-->mimes.php

            'doc'   =>  'application/msword',
            'docx'  =>  array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'),
            'xlsx'  =>  array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'),
            'word'  =>  array('application/msword', 'application/octet-stream'),
将其添加到config-->mimes.php

            'doc'   =>  'application/msword',
            'docx'  =>  array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'),
            'xlsx'  =>  array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'),
            'word'  =>  array('application/msword', 'application/octet-stream'),

如果我没有弄错的话,
data()
将返回文件的内容,即使上传因错误而终止。你能检查数据的内容并查看[文件类型]吗?谢谢你,伙计。这帮我找到了问题所在。显然,文件类型是text/plain。所以我只是把它添加到批准的.doc的哑剧中。谢谢。如果我没有弄错的话,
data()
将返回文件的内容,即使上传因错误而终止。你能检查数据的内容并查看[文件类型]吗?谢谢你,伙计。这帮我找到了问题所在。显然,文件类型是text/plain。所以我只是把它添加到批准的.doc的哑剧中。谢谢