2016-03-23 122 views
2

我在笨framework.I工作要上傳文檔或DOCX file.So我有這樣寫代碼:無法上傳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'), 

當我打印$這個 - > upload->數據()話,就說明FILE_TYPE爲應用/ vnd.oasis。 opendocument.text

但是,它不工作。所以我怎樣才能上傳文檔或docx文件?

+0

什麼是您的CI版本? –

+0

@Abdulla它的2.2.6 –

+0

你加載庫? –

回答

0

我在允許的MIME類型數組中看不到「application/vnd.oasis.opendocument.text」。

+0

我需要在doc數組中寫** application/vnd.oasis.opendocument.text **嗎? –

+1

是的,你應該。如果您正在上傳的文件是.doc,請將其添加到「doc」數組中。如果它是.docx,則將其添加到該數組中。 您可能會發現更多的MIME類型,它取決於創建文件的應用程序。因此,當上傳失敗時總是記錄該值,以便將來可以添加它們。 –

1

在這裏,我已經創建的文檔數組中mimes.php這樣的:

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

和工作。

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'; 
0

將以下內容添加到mimes.php文件中

'binary/octet-stream' 

對於您想要支持的每種辦公文檔類型。不是一個理想的解決方案,但爲我工作。