Неправильный MIME-тип при загрузке файлов

У меня проблема с MIME-типом при загрузке файла на сервер из веб-интерфейса. Я использовал CI в качестве движка для моего сайта. У меня FreeBSD с Apache 2.2.15 на плате.
Проблема в:

  1. Пока я загружаю doc- файл, я получаю application / x-msword, ppt - application / vnd.ms-powerpoint, xls - application / vnd.ms-excel - это нормально.
  2. Но когда я пытаюсь загрузить 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 файл, потому что они одно и то же.

Тем не менее, я действительно не уверен, что вы спрашиваете или чего вы пытаетесь достичь.

Другие вопросы по тегам