Неправильный MIME-тип при загрузке файлов
У меня проблема с MIME-типом при загрузке файла на сервер из веб-интерфейса. Я использовал CI в качестве движка для моего сайта. У меня FreeBSD с Apache 2.2.15 на плате.
Проблема в:
- Пока я загружаю doc- файл, я получаю application / x-msword, ppt - application / vnd.ms-powerpoint, xls - application / vnd.ms-excel - это нормально.
- Но когда я пытаюсь загрузить docx, pptx, xlsx, я получаю application / octet-stream; rar - приложение / принудительная загрузка - и это неправильно.
UPD1. В моем файле mime.types присутствуют эти MIME-типы с требуемым типом (т. Е. Application / openxmlformats-officedocument.wordprocessingml.document)
UPD2. Я написал "AddType app.../openxml... .docx" в httpd.conf напрямую и перезапустил apache, но ничего не произошло.
UPD3. Форма загрузки имеет тип "multipart / form-mixed"
UPD4. Тип контента в NET-панели Firebug также имеет неверный MIME-тип
2 ответа
Я не знаю о CodeIgniter Framework, но я знаю, что видел пару приложений на основе PHP, которые имеют эту проблему. Если вы запустите wireshark и перехватите HTTP-тафик, вы можете увидеть, что компьютер, который загружает файл, устанавливает неправильный тип MIME. Если ваше PHP-приложение вслепую предполагает, что загрузчик знает правильный тип, вы не сможете ничего сделать.
Это потому что .docx
файлы на самом деле являются файлами ZIP с другим расширением. Если вы откроете один из них в WinRAR или WinZIP, вы найдете десятки .xml
файлы внутри них. Я предполагаю, что FreeBSD не знает о разнице между .docx
и .zip
файл, потому что они одно и то же.
Тем не менее, я действительно не уверен, что вы спрашиваете или чего вы пытаетесь достичь.