2013-08-14 12 views
5

Próbuję przesłać plik .docx za pomocą pomocnika do przesyłania w Codeigniter.Jak przesłać .docx za pomocą 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(); 
     } 
.... 

Funkcja przesyłania działa poprawnie na moim lokalnym hoście. Jednak gdy próbuję przesłać plik .docx na serwerze, otrzymuję komunikat "Typ pliku, który próbujesz przesłać, jest niedozwolony".

Mogę przesłać inne pliki na serwerze, a kod jest dokładną kopią tego, co mam lokalnie. Ja również googled wokół i stwierdził, niektórzy ludzie zmienili MIME dla .docx do:

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

ale to nie wydaje się, że problem został rozwiązany. Co może być nie tak i jak mogę rozwiązać problem, aby rozwiązać ten problem?

Odpowiedz

12

Spróbuj dodać ten typ MIME: application/zip do application/config/mimes.php dla docx. Mi to pasuje. Jeśli to nie pomoże. Otwarte system/libraries/Upload.php (linia 205) i to zrobić:

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

Zobaczysz typ pliku z was .docx i trzeba dodać ją do listy docx mimów w config.

+0

Pomogło mi to odpowiedzieć na pytanie. Z jakiegoś powodu było to postrzegane jako "application/x-zip". Dodałem to do typu MIME dla docx i działało. – Sheldon

+0

Kilka tygodni temu miałem podobny problem. Cieszę się, że moje pragnienie jest dla ciebie pomocne. –

+0

Dzięki za rozwiązanie, dla mojej sprawy wyświetlało się i-in/x-empty, które dodałem w mimach i zadziałało. – Anupal

Powiązane problemy