HTML — изображения с неправильным расширением

Если имя файла изображения не соответствует правильному типу файла (например, хранится с расширением .pdf), безопасно ли использовать его в HTML? Будет ли браузер определять правильный тип изображения? Смогут ли мобильные браузеры определить правильный тип файла?

Я протестировал его с Google Chrome, он работает, но гарантированно ли он будет работать во всех разумных браузерах?

ОБНОВЛЕНИЕ: я не могу переименовать их, чтобы исправить расширения, так как они будут загружены пользователями, а затем снова показаны.


person Community    schedule 27.02.2013    source источник
comment
возможно глупый вопрос, но почему бы вам просто не переименовать файлы с правильным суффиксом файла   -  person olly_uk    schedule 27.02.2013
comment
Веб-браузеры обычно не заботятся о расширении файла, они заботятся о типе контента: en.wikipedia.org /wiki/MIME_type Будет ли это гарантировано, зависит от браузера, но в целом тип контента определяет, как браузер определяет, что делать с потоком данных. Имейте в виду, что в HTTP нет такого понятия, как файл. И, таким образом, расширение бессмысленно. Запрос и ответ содержат заголовки и данные. Если данные предназначены для обработки как файл, то заголовки должны указывать на это.   -  person David    schedule 27.02.2013
comment
@olly_uk, изображения загружены пользователями, я хочу снова показать им изображения   -  person    schedule 27.02.2013
comment
@David, спасибо, похоже, я могу использовать неправильные файлы ext, поскольку они в html.   -  person    schedule 27.02.2013


Ответы (1)


Смогут ли мобильные браузеры определить правильный тип файла?

Браузеры обычно не определяют типы файлов (есть исключения, особенно в IE, в результате чего текстовые файлы, обсуждающие HTML, рассматриваются как HTML, а серверы IIS отправляют text/plain типы содержимого для документов HTML без ведома их владельцев— но они не должны быть главной заботой).

Вместо этого браузеры определяют тип данных, изучая заголовок HTTP Content-Type Response. По умолчанию большинство серверов устанавливают это на основе расширения файла, который они считывают из файловой системы для обслуживания клиента.

Вы можете переопределить это, но это неудобно и может вызвать проблемы, если люди сохранят файл перед его открытием из своей локальной файловой системы (потому что у него будет неправильное расширение, и их ОС свяжет его с неправильным приложением).

person Quentin    schedule 27.02.2013