Показать пользовательский текст для примененных фильтров типов файлов в диалоге файлов, чтобы загрузить определенную категорию файлов
Следующее позволит пользователям выбирать только указанную категорию файлов изображений.
<input id="file" type="file" name="file" size="30"
accept="image/jpg,image/png,image/jpeg,image/gif"
/>
Но проблема заключается в том, что в диалоговом окне файла в качестве описания файла будет отображаться "Пользовательские файлы", что приведет пользователей в замешательство относительно того, какой тип файла они должны выбрать.
Мой вопрос: есть ли лучший способ изменить текст "Пользовательские файлы" на "Файлы изображений"
Примечание. Если я предоставлю "image/*", которое будет отображать "Файлы изображений" в описании файла, но я НЕ ХОЧУ ПОЗВОЛИТЬ пользователю выбирать ВСЕ типы файлов изображений, я просто хочу ограничиться указанными форматами.
Спасибо за ваше мнение заранее.
1 ответ
Краткий ответ
Как я и ожидал, оказывается, что это невозможно. <input type="file" />
является одним из наиболее защищенных элементов браузера и, следовательно, наименее адаптируемых элементов браузера. Причина, по которой браузеры обрабатывают ввод файлов с такой тщательностью, заключается в том, что они не хотят рисковать тем, что злоумышленники получат доступ к вашим файлам (даже если ваша структура папок будет плохой).
Длинный ответ
Возможно, вы не сможете свободно изменять текст, видимый в окне фильтра, но есть надежда. На самом деле, в некоторых ситуациях можно выбрать вид текста, который появляется. Один большой недостаток заключается в том, что он полностью не совместим с браузером и, вероятно, не совместим с ОС.
Существует также еще одна причина, по которой браузерам может быть неуместно разрешать редактирование этого текста, его можно использовать для введения пользователей в заблуждение (например, такой текст, как We're watching you
или же FATAL WINDOWS ERROR
может напугать пользователей). Более того, это не должно, но может привести к возможным эксплойтам, когда пользователи пытаются запустить какой-то код C в полевых условиях, предоставляя им доступ к компьютеру, что может нанести вред вашему компьютеру катастрофическим образом.
Выше я говорил, что можно несколько изменить видимый фильтр-текст. Ниже я расскажу о некоторых вещах, которые попробовал, но не стесняйтесь попробовать это самостоятельно на этом коде, который я создал для целей тестирования: https://codepen.io/JohannesB/pen/vKGoyE
Возможное вдохновение для других типов файлов, которые я не тестировал (не стесняйтесь редактировать этот пост): /questions/34639064/atribut-vvoda-fajla-prinyat-eto-polezno/34639072#34639072
Выбор параметров принятия файла, которые, я считаю, могут дать интересные результаты: application / msword, application / rtf, application / octet-stream, application / octet-stream exe, application / zip, text / css, text / html, text / plain
Известные выводы
- Все три браузера отличаются по типам файлов, связанных с
image/*
,video/*
а такжеaudio/*
- Internet Explorer - единственный браузер, который понимает
Video/x-msvideo avi
- Firefox и Chrome понимают
Aplication/pdf
с пользовательским фильтром текста, но IE не делает. - Chrome - единственный браузер, который понимает
Text/*
и это имеет собственную текстовую подпись для.exe
- Заголовки пользовательских фильтров никогда не применяются для комбинированных вводов, абсолютно ни в одном браузере.
Путь не исследован
Вполне возможно, что для flash-загрузчиков этот текст можно настраивать, но я в этом сильно сомневаюсь. Кроме того, flash устарела, так что, на мой взгляд, попробовать не стоит.
Результаты эксперимента
Отказ от ответственности: приведенные ниже примеры были запущены на компьютере с Windows 7 с использованием Internet Explorer v11.0.9600, Chrome v51.0.2704.84m и Firefox v46.0.1. Я не могу гарантировать, что они представляют правильную информацию в других операционных системах, других версиях браузера или даже в тех же версиях браузера. Используйте эту информацию с осторожностью.
Интернет проводник
Аудио /*
Заявка/*
Применение / PDF
Образ/*
Текст/*
Видео/*
Видео / x-msvideo avi
.EXE
Изображение /*, Видео /*
Изображение /*, .exe
Хром
Аудио /*
Заявка/*
Применение / PDF
Образ/*
Текст/*
Видео/*
Видео / x-msvideo avi
.EXE
Изображение /*, Видео /*
Изображение /*, .exe
Mozilla Firefox
Аудио /*
Заявка/*
Применение / PDF
Образ/*
Текст/*
Видео/*
Видео / x-msvideo avi
.EXE
Изображение /*, Видео /*
Изображение /*, .exe