2013-08-21 1 views
1

У меня есть веб-приложение Java, позволяющее пользователям загружать Word или PDF-файл. У меня есть 2 пользователя, которые жалуются на неправильный тип файла при загрузке файла .DOCX. Я получил оба файла и загрузил их на свой компьютер. Оба работали гладко.У документов MS Word разные типы mime в разных браузерах

Я использую MultipartRequest.getContentType(), чтобы получить тип файла. Затем используйте следующую информацию:

if(!(myFileType.equals("application/pdf") || myFileType.equals("application/msword") || myFileType.equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document"))){ 
       errMsg = "Wrong file type. Only PDF and MS Word are accepted";   
} 

Мне кажется, что это проблема с клиентским ПК. Браузер? Антивирусная программа? Кто-нибудь знает?

[Добавлено] Я нашел в файле журнала, что некоторые файлы PDF имеют неправильный тип тоже. Мне нужно записать тип mime, если ошибка файла неправильная.

[добавлено 2] Я попросил одного пользователя загрузить его снова после изменения программы. Угадай, что? На этот раз ошибка. Слабое!

ответ

1

Мы нашли в нашем приложении, что некоторые браузеры сообщили .docx, как почтовый индекс (MIMETYPE приложения/почтовый индекс или приложение/х-zip- сжатый). Вероятно, это потому, что файлы .docx на самом деле являются zipped-файлами, и браузеры делали сканирование магического числа или что-то вроде этого.

В принципе, просто не доверяйте mimetypes, как сообщается клиентским программным обеспечением. Не доверяйте расширениям.

0

Короткий ответ - нет, разные браузеры не имеют разных типов mime. Однако docx не будет работать с application/msword. Смотрите эту ссылку для правильных типов пантомимы для офиса 2007+ DOCX и т.д. файлы:

http://www.kattare.com/docs/faq_view/822/how-do-i-add-microsoft-office-2007-support-mime-types-to-tomcat.html

+0

Кроме того, простой шаг отладки заключается в том, чтобы распечатать входящий тип mime внутри блока 'if', чтобы узнать, почему он сбой – StormeHawke

+0

Извинения, я не видел последний тип mime в вашем списке. Еще рекомендую распечатать тип mime внутри блока if и посмотреть, что всплывает – StormeHawke

+0

Спасибо! Я изменяю progrmam для входа в mime-тип. – lonelyloner