Назад | Перейти на главную страницу

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

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

  1. Пока я загружаю док-файл, я получаю приложение / x-msword, ppt - приложение / vnd.ms-powerpoint, xls - приложение / vnd.ms-excel - это нормальный.
  2. Но когда я пытаюсь загрузить docx, pptx, xlsx я получил приложение / октет-поток; рар - приложение / принудительная загрузка - а это неправильно.

UPD1. В моем файле mime.types эти MIME-типы присутствуют с требуемым типом (т.е. application / openxmlformats-officedocument.wordprocessingml.document)
UPD2. Я написал «AddType app ... / openxml ... .docx» непосредственно в httpd.conf и перезапустил apache, но ничего не произошло.
UPD3. Форма загрузки имеет тип enctype "multipart / form-mixed"
UPD4. Тип содержимого в NET-панели Firebug тоже есть неправильный MIME-тип

Я не знаю о CodeIgniter Framework, но знаю, что видел пару приложений на основе PHP, в которых есть эта проблема. Если вы запустите wirehark и обнюхаете HTTP-трафик, вы можете увидеть, что компьютер, который загружает файл, устанавливает неправильный тип MIME. Если ваше приложение PHP слепо предполагает, что загрузчик знает правильный тип, вы вряд ли сможете многое сделать.

Это потому что .docx файлы на самом деле являются файлами ZIP с другим расширением. Если вы откроете один из них в WinRAR или WinZIP, вы найдете десятки .xml файлы внутри них. Я предполагаю, что FreeBSD не знает разницы между .docx и .zip файл, потому что они тоже самое.

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