2

В IE11 всякий раз, когда я использую атрибут accept на моем входе, помимо обычных «Все файлы» и «Пользовательские файлы (.xls) появляются две дополнительные категории :. «Изображение» и «HTML» есть ли способ, чтобы удалить нежелательные категорииIE11 input type = "file" accept = ". Xls" появляются дополнительные категории

проблема может быть воспроизведена для меня на любом входе с принять атрибут, как в этом JSFiddle: http://jsfiddle.net/sachinjoseph/BkcKQ/

IE 10+, Edge, Chrome:<br /> 
<label>.xls,.xlsx files</label> 
<input type="file" accept=".xls,.xlsx" /> 
<br /> 
<br /> 
IE 10+, Edge, Chrome, Firefox:<br /> 
<label>.xls,.xlsx files (using MIME-types)</label> 
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" /> 
<br /> 
<br /> 
<h3> 
Recommended way of achieving file type filter: 
</h3> 
IE 10+, Edge, Chrome, Firefox:<br /> 
<label>.xls,.xlsx files (using both extensions and MIME-types)</label> 
<input type="file" 
    accept=".xls,.xlsx, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" /> 
<br /> 
<br /> <br /> 
<br /> 
    <b>Note:</b><p>Edge allows to choose files of any type by default, even if accept attribute is set, although it adds a custom filter list to the file-select dialog box. The user must manually apply the filter from the file-select dialog box.</p> 
+0

Параметр 'accept' атрибут не для расширений файлов. См. Документацию. https://msdn.microsoft.com/en-us/library/ms533060(v=vs.85).aspx – Tomalak

ответ

0

IE, как это часто бывает, не соответствует стандартам. Стандарт HTML позволяет использовать типы mime, а также расширения файлов, которым предшествует полная остановка. Для сравнения, спецификация IE для принятия атрибут только упоминает типы mime. Вот что говорит официальная спецификация:

Атрибут accept может быть указан для предоставления агентам пользователя подсказки о том, какие типы файлов будут приняты.

Если указано, атрибут должен состоять из множества разделенных запятой маркеров, каждый из которых должен быть ASCII, без учета регистра подходит для одной из следующих причин:

  • Строка «аудио/* "
    Указывает, что звуковые файлы приняты.
  • Строка "video/*"
    Указывает, что видеофайлы приняты.
  • Строка "image/*"
    Указывает, что файлы изображений принимаются.
  • Действительный MIME-тип без параметров
    Указывает, что файлы указанного типа приняты.
  • Строка, чей первый символ является символом FULL STOP U + 002E (.)
    Указывает, что файлы с указанным расширением файла принимаются.

Источники:
- https://html.spec.whatwg.org/multipage/input.html#attr-input-accept
- https://msdn.microsoft.com/en-us/library/ms533060%28v=vs.85%29.aspx
- File input 'accept' attribute - is it useful?