2013-08-14 25 views
5

Tôi đang cố gắng tải lên .docx bằng cách sử dụng trình trợ giúp tải lên trong Codeigniter.Tôi làm cách nào để tải lên .docx bằng 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(); 
     } 
.... 

Chức năng tải lên hoạt động tốt trên máy chủ cục bộ của tôi. Tuy nhiên, khi tôi thử tải lên tệp .docx trên máy chủ, tôi nhận được "Loại tệp bạn đang cố gắng tải lên không được phép".

Tôi có thể tải lên các tệp khác trên máy chủ và mã là bản sao chính xác của những gì tôi có tại địa phương. Tôi cũng googled xung quanh và tìm thấy một số người đã thay đổi mime cho .docx để:

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

nhưng điều đó dường như không giải quyết được vấn đề. Điều gì có thể xảy ra và tôi làm cách nào để giải quyết vấn đề để tôi có thể giải quyết vấn đề này?

Trả lời

12

Hãy thử thêm loại mime này: application/zip vào application/config/mimes.php cho docx. Nó làm việc cho tôi. Nếu không được. Mở system/libraries/Upload.php (đường 205) và làm như sau:

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

Bạn sẽ thấy loại tập tin của bạn .docx và cần phải thêm nó vào danh sách docx mimes trong config.

+0

Điều này đã giúp tôi trả lời câu hỏi. Đối với một số lý do nó đã được nhìn thấy nó như là "ứng dụng/x-zip". Tôi đã thêm điều này vào loại mime cho docx và nó hoạt động. – Sheldon

+0

Cách đây vài tuần, tôi có một vấn đề tương tự. Vui mừng, những gì desicion của tôi là hữu ích cho bạn. –

+0

Cảm ơn các giải pháp, cho trường hợp của tôi nó đã được hiển thị inode/x-trống mà tôi thêm vào trong mimes và nó làm việc. – Anupal

Các vấn đề liên quan