CodeIgniter 2 - невозможно загрузить файл .docx - PullRequest
0 голосов
/ 25 сентября 2018

Это уже происходило раньше, и я следил за этот ответ , но без радости.

Я пытаюсь загрузить файл .docx в мое приложение CI, но оно дает мне

Тип файла, который вы пытаетесь загрузить, не разрешен.

Теперь, когда я изменяю тип mime-типа полученного файла, изменяя строку 199 системы / library / upload.php to

$this->_file_mime_type($_FILES[$field]); die(var_dump($this->file_type));

Я получаю

application / vnd.openxmlformats-officedocument.wordprocessingml.document;charset = binary

... и это указано в моем файле application / config / mimes.php как приемлемый mime для docx.

В таком случае, что еще можетбыть неправым?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Оказывается, что где-то в потоке CI MIME трансформировался из

application / vnd.openxmlformats-officedocument.wordprocessingml.document

в

application / msword

Я понятия не имею, в какой момент или почему это произошло.Когда я запускаю следующее в своем методе контроллера CI, я получаю первое.

$finfo = finfo_open(FILEINFO_MIME);
$mime = finfo_file($finfo, 'path/to/file.docx');
var_dump($mime);

Так что я не представляю, как оно изменилось во втором.

Само собой разумеетсядобавление 'application / msword' в область allowed_types параметров загрузки (переданных в $this->upload->initialize($options)) решает проблему.

0 голосов
/ 25 сентября 2018

У меня совсем недавно была та же проблема, и я потерял весь день, чтобы ее решить, но безуспешно.Я рекомендую вам не тратить свое время и просто разрешить все файлы, а затем выполнить функцию php, чтобы проверить, является ли файл .docx

...