2016-01-19 2 views
0

Созданный мной веб-сайт позволяет загружать файлы авторизованными пользователями. Для любой конкретной категории выгрузок разрешен набор типов файлов, например. .pdf и .docx, так что мой клиент может выбрать то, что они хотят принять.Ошибка MIME при загрузке с помощью файлов PHP - docx

При загрузке я проверяю тип MIME загруженного файла (используя finfo_open(FILEINFO_MIME_TYPE)) на таблицу базы данных типов MIME для этого расширения.

При тестировании я загружаю файл docx с моего ПК - он имеет расширение docx, и Windows сообщает о типе файла как application/vnd.openxmlformats-officedocument.wordprocessingml.document, который я ожидаю. Однако finfo_open дает мне MIME-тип приложения/msword.

Информация о finfo_open поступает из файла или из-за чего-либо в браузере или процесса загрузки (в этом случае, я думаю, мне нужно указать дополнительные типы MIME) или это что-то в пределах веб-сервера (в котором case, можно ли его изменить с помощью php.ini)?

ответ

0

Я верю в PHP, безопаснее использовать $_FILES, чтобы проверить тип файла MIME.

Тем не менее, я не думаю, что это беспокоит это. Вы уверены, что дали docx, а не только документ doc? Обычно application/msword является типом mime для расширения файла doc ... Убедитесь, что вы сохранили файл, используя правильную версию слова microsoft и в нужном формате, а затем повторите попытку. Кроме того, я бы попытался использовать print_r на $_FILES, чтобы узнать, что он сообщает вам о файле? Сообщает ли вам, что файл имеет другой тип mime?