2013-08-14 5 views
5

Sto tentando di caricare un file .docx utilizzando l'helper di caricamento in Codeigniter.Come posso caricare .docx usando Codeigniter? (PHP)

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(); 
     } 
.... 

La funzione di caricamento funziona correttamente sul mio host locale. Tuttavia, quando provo a caricare il file .docx sul server, viene visualizzato "Il tipo di file che si sta tentando di caricare non è consentito".

Posso caricare altri file sul server e il codice è una copia esatta di ciò che ho localmente. Ho anche su google in giro e trovato alcune persone hanno cambiato il mimo per .docx a:

'docx' => array('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/octet-stream') 

ma che non sembra aver risolto il problema. Cosa potrebbe andare storto e come posso risolvere il problema in modo da poter risolvere questo problema?

risposta

12

Prova ad aggiungere questo tipo mime: application/zip a application/config/mimes.php per docx. Per me funziona. Se non aiuta. Aprire system/libraries/Upload.php (linea 205) e fare questo:

var_dump($this->file_type); 
exit(); 

Si vedrà tipo di file .docx di voi e necessario aggiungerlo DOCX lista mimi in config.

+0

Questo mi ha aiutato a rispondere alla domanda. Per qualche ragione lo vedeva come "application/x-zip". Ho aggiunto questo al tipo mime per docx e ha funzionato. – Sheldon

+0

Poche settimane fa ho avuto un problema simile. Felice, quale è la mia opinione per te. –

+0

Grazie per la soluzione, nel mio caso mostrava inode/x-empty che ho aggiunto in mimi e ha funzionato. – Anupal