Как заставить <input type = «file» /> принимать только эти типы?

Я хочу, чтобы мой загрузчик разрешал только эти типы:

док, докс.xls, xlsx.PPT, PPTX.текст.PDF.Типы изображений.

Как мне этого добиться? Что я должен положить вaccept атрибут? Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ!!!

У меня есть еще одна вещь, чтобы спросить. Когда появляется всплывающее окно для выбора файла, в правом нижнем углу появляется выпадающий список, содержащий все разрешенные файлы. В моем случае список будет длинным. Я вижу в списке, есть опция под названиемAll Supported Types, Как сделать его выбранным по умолчанию и исключить все остальные параметры?

Любая помощь будет оценена. Спасибо.

 Neigyl R. Noval25 июн. 2013 г., 11:41
Это поможет?stackoverflow.com/questions/11601342/..., Не уверен если "application / doc ","применение / PDF», а также "Приложение / ППТ» MIME-типы поддерживаются.
 Martin Thoma27 июл. 2017 г., 17:09
 Cody18 июл. 2018 г., 22:17
Относительно вашего второго вопроса:Атрибут принять не• проверить типы выбранных файлов; он просто предоставляет советы для браузеров, чтобы направлять пользователей к выбору правильных типов файлов. Пользователи по-прежнему могут (в большинстве случаев) переключать опцию в средстве выбора файлов, которая позволяет переопределить это и выбрать любой файл, который они пожелают, а затем выбрать неправильные типы файлов. Из-за этого вы должны убедиться, что атрибут accept поддерживается соответствующей проверкой на стороне сервера. " developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

Ответы на вопрос(7)

Из-за использования только application / msword, application / vnd.ms-excel, application / vnd.ms-powerpoint ... допускаются только до 2003 года продукты MS, и не самые новые. Я'мы нашли это:

application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.slideshow, application/vnd.openxmlformats-officedocument.presentationml.presentation

И это включает в себя новые. Для других файлов вы можете получить MIME TYPE в вашем файле таким способом (простите за язык) (в типах списков MIME нетт это):

Вы можете выбрать & скопировать тип контента

<input type="file" accept="image/gif, image/jpeg">
 Chamika Sandamal23 июн. 2014 г., 07:02
@ JukkaK.Korpela, это просто пример кода, и вы можете установитьaccept атрибут сMIME_types как значения
 Jukka K. Korpela22 июн. 2014 г., 06:35
Данный код принимает только файлы GIF и JPEG, в отличие от того, что было запрошено в вопросе.
 DaveB27 февр. 2019 г., 20:43
Это по-прежнему представляет собойВсе файлы" вариант.

Значениеaccept атрибут согласно HTML5 LC список разделенных запятыми элементов, каждый из которых представляет собой определенный тип медиаimage/gifили обозначение, подобноеimage/* это относится ко всемimage типы или расширение файла, например.gif, IE 10+ и Chrome поддерживают все это, тогда как Firefox не поддерживает расширения. Таким образом, самый безопасный способ заключается в использованиитипы носителей и обозначения какimage/*, в этом случае

<input type="file" name="foo" accept="application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint,
text/plain, application/pdf, image/*">

если я правильно понимаю намерения. Помните, что браузеры могут не распознавать имена типов носителей точно так, как указано в официальном реестре, поэтому необходимо провести некоторое тестирование.

 Joe Firebaugh23 июн. 2017 г., 19:02
Возможно, это было правдой в 2014 году, когда был дан этот ответ, но я могу подтвердить, что список расширений, разделенных запятыми, корректно работает в Firefox.
 pavan kumar05 апр. 2017 г., 13:37
@Jukka K. Korpela этот фильтр получает мне все офисные файлы, которые я хочу, спасибо
 Charles Cavalcante23 мая 2017 г., 17:25
Чтобы добавить suport для docx, xlsx и pptx: application / vnd.openxmlformats-officedocument.wordprocessingml.document, application / vnd.openxmlformats-officedocument.spreadsheetml.sheet, application / vnd.openxmlformats-officedocument.presentationml.slideshow
 Shabbir Dhangot22 февр. 2017 г., 12:35
Это не будет работать, если ваш файл doc сделан с помощью программного обеспечения Ubuntu.
 Goldy11 янв. 2019 г., 12:39
не работает при попытке загрузить с устройства Android / IOS. Если у кого-нибудь есть решение, дайте мне знать.

заявлено на w3schools:

аудио / * - Все звуковые файлы принимаются

video / * - Все видеофайлы принимаются

image / * - Все файлы изображений принимаются

MIME_type - допустимый тип MIME без параметров. Посмотрите на типы IANA MIME для получения полного списка стандартных типов MIME

 Mateus Leon24 мая 2018 г., 21:51
w3schools FTL = Для Свободных

<input type="file" accept=".xlsx,.xls,image/*,.doc, .docx,.ppt, .pptx,.txt,.pdf">
 luxigo22 февр. 2018 г., 13:32
Браузеры обычно не проверяют содержимое файла, поэтому расширение в порядке - даже предпочтительнее, так как браузеры не знают всех типов пантомимы. Вы должны проверить содержимое файла самостоятельно.

<input type="file" accept="image/*">

Для других Вы можете использовать атрибут accept в своей форме, чтобы предложить браузеру ограничить определенные типы. Тем не менее, выЯ захочу пройти повторную проверку в вашем коде на стороне сервера, чтобы убедиться. Никогда не верь тому, что отправляет тебе клиент

 Jukka K. Korpela22 июн. 2014 г., 06:34
Данный код принимает только файлы изображений, в отличие от того, что было запрошено в вопросе.


<input type="file" placeholder="Do you have a .ppt?" name="pptfile" id="pptfile" accept="application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.presentation">

Ваш ответ на вопрос