0

Я делаю загрузку файла, который проверяет тип файла mime в браузере. Он использует jQuery File Upload Plugin и работает хорошо везде, кроме одного пользователя.File API возвращает «invalid/octet-stream» для файла pdf в Firefox

По какой-то причине file.type (html5 file api) возвращает «недействительный/октетный поток» для pdf-файла (обычно это «приложение/pdf»). Pdf-файл прост и может быть открыт на этом ПК без проблем.

Окружающая среда: Windows 7 и Firefox 40. Не воспроизводится в хроме или проводнике.

ответ

0

Попробуйте удалить (или переименовать/переместить для целей тестирования) файл MimeTypes.rdf в поврежденный Firefox profile folder.

(В Windows это обычно можно найти по пути, подобному c: \ Users \ [name] \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ [some id] .default - или просто найти «MimeTypes. rdf ".)

Если после загрузки PDF-файла вы столкнулись с a Firefox bug, о котором впервые сообщалось в 2007 году (basically the same here, о котором сообщалось в 2006 году). В двух словах, любой веб-сайт, с которого пользователь когда-либо загружает файл, может повредить файл MimeTypes.rdf в отношении расширения загруженного файла - злонамеренно или случайно/неосознанно.

Что вы можете сделать:

  1. Vote for the Firefox bug!
  2. Быстрое решение, чтобы заставить его работать для одного пользователя прямо сейчас: У вас есть пользователь удалить их файл mimeTypes.rdf. В следующем запуске Firefox создаст новый «новый», но это очистит все ассоциации MIME-типа/приложения, созданные пользователем со временем. Кроме того, это поможет, пока пользователь не загрузит следующий файл PDF с другого веб-сайта, который снова искажает файл MimeTypes.rdf.
  3. Используйте заголовок «user agent», чтобы определить, загружен ли файл из Firefox. Если это так, и тип MIME не соответствует чему-либо, что вы хотите принять, дважды проверьте расширение имени файла и примите его, если расширение соответствует принятому типу файлов («.pdf» в вашем случае).