无法在codeigniter中上传doc或docx文件

时间:2016-03-23 10:49:06

标签: php codeigniter

我在codeigniter框架中工作。我想上传doc或docx文件。所以我写了这样的代码:

$config['upload_path'] = './uploads/resume/';
$config['allowed_types'] = 'docx|doc|DOC|DOCX';

$this->upload->initialize($config);

if ( ! $this->upload->do_upload('resume'))
{
    print_r($error = array('error' => $this->upload->display_errors()));
}
else
{
    $upload = $this->upload->data();
    print_r($upload);exit;
}

此处显示错误,如您尝试上传的文件类型不允许。并且文件未上传。

我还修改了 mimes.php 文件并添加了

'doc'    =>    array('application/msword', 'application/vnd.ms-office'),
'docx'    =>    array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),

当我打印 $ this-> upload-> data()时,它会将file_type显示为 application / vnd.oasis.opendocument.text

但是,它不起作用。那我怎样才能上传doc或docx文件?

4 个答案:

答案 0 :(得分:1)

这里我在mimes.php中创建了doc数组,如下所示:

'doc'    =>    array('application/msword', 'application/vnd.ms-office','application/vnd.oasis.opendocument.text')

及其工作。

答案 1 :(得分:0)

我没有看到" application / vnd.oasis.opendocument.text"在你允许的mime类型数组中。

答案 2 :(得分:0)

  

不要忘记max_size并允许输入txt

$config['allowed_types']        = 'txt|doc|docx';
$config['max_size']             = 10000;

$this->load->library('upload', $config);

如果仍然无法加载OpenOffice扩展程序

$config['allowed_types'] = 'application/vnd.oasis.opendocument.spreadsheet | application/vnd.oasis.opendocument.text | application/vnd.oasis.opendocument.presentation | 
application/vnd.openxmlformats-officedocument.wordprocessingml.document | application/vnd.ms-excel | application/vnd.openxmlformats-officedocument.presentationml.presentation | txt';

答案 3 :(得分:0)

将以下内容添加到mimes.php文件

'binary/octet-stream'

您要支持的每种office文档类型。不是一个理想的解决方案,但对我有用。