Почему главные браузеры не поддерживают HTML, ПРИНИМАЮТ атрибут для входного типа = “файл”?

C ++ constexpr

constexpr uint64_t fact(uint32_t n)
{
    return  (n==0) ? 1:n*fact(n-1);
}
5
задан neophyte 19 January 2017 в 05:42
поделиться

3 ответа

Причина, по которой браузеры фактически не реализуют атрибут ACCEPT , заключается в том, что проверка типа MIME - это наука, а не просто чтение расширения файла. Даже проверка типа MIME на стороне сервера может быть трудной, как отмечает MediaWiki:

http://www.mediawiki.org/wiki/Manual:Mime_type_detection

Обратите внимание, что они пытаются проверить тип MIME даже на стороне сервера.

3
ответ дан 14 December 2019 в 08:53
поделиться

Самая педантичная причина состоит в том, что не требуется спецификацией HTML4 (выделено мной):

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

Это дополнительная функция.

Мне лично хотелось бы увидеть этот. Например, если задано image / * , браузер может открыть библиотеку фотографий пользователя по умолчанию и использовать большие значки. text / * может перейти в папку с документами и т. Д. Мобильные браузеры, такие как iPhone, которые обычно вообще не разрешают загрузку файлов, можно использовать это, чтобы вызвать галерею, когда форма ожидает изображение. Мы могли сходить с ума и при желании подключиться к сканеру. Возможности безграничны.

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

1
ответ дан 14 December 2019 в 08:53
поделиться

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

0
ответ дан 14 December 2019 в 08:53
поделиться