Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
Ответы:
Нет, image/jpg
это не то же самое image/jpeg
, только image/jpeg
распознается как фактический тип пантомимы для файлов JPEG.
См. Https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Предоставление неверного Content-Type image/jpg
для IE может вызвать проблемы, см. Http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm .
image/jpeg jpeg jpg;image/jpg jpeg jpg;
Для тех, кому это может помочь, я использую этот список в качестве справочного материала для определения своего типа контента, когда мне приходится иметь дело с изображениями в моем приложении.
Это говорит о том, что расширение jpg может быть объявлено с Content-type : image/jpeg
Нет никакого image/jpg
атрибута для типа контента.
TL; Dr "стандарты" беспорядок мешанина; это зависит от того, кого вы спрашиваете!
В целом, похоже, нет MIME-типа image/jpg
. Однако на практике почти все программное обеспечение прекрасно обрабатывает файлы изображений с именем " *.jpg
".
Эта конкретная тема сбивает с толку, поскольку различная ассоциация расширения имени файла, связанного с типом MIME, зависит от того, какая организация создала таблицу расширений имен файлов для типов MIME. Другими словами, расширение имени файла .jpg
может быть много разных вещей.
Например, вот три «полных списка» и один RFC, которые варьируются в зависимости от различных расширений имен файлов в формате JPEG и соответствующих типов MIME.
.jfif
, .jfif-tbnl
, .jpe
, .jpeg
, .jpg
→image/jpeg
.jfif
, .jpe
, .jpeg
, .jpg
→image/pjpeg
.jpeg
, .jpg
→image/jpeg
.jpeg
, .jpg
→image/x-citrix-jpeg
.pjpeg
→ image/pjpeg
jpg
не упомянутоjpeg
→ см. RFC 2045 (без упоминания), см. RFC 2046 → image/jpeg
13JPEG
→ video/JPEG
jpeg2000
→ video/jpeg2000
jpm
→ image/jpm
( JPEG 2000 )jpx
→ image/jpx
( JPEG 2000 )vnd.sealedmedia.softseal.jpg
→ image/vnd.sealedmedia.softseal.jpg
Эти "полные списки" и RFC не имеют типа MIME image/jpg
! Но для MIME типа image/jpeg
некоторых списков действительно имеют различные расширения имен файлов ( .jpeg
, .jpg
, ...). Другие списки не упоминаются image/jpeg
.
Кроме того, существуют различные типы форматов изображений JPEG (например, формат изображений Progressive JPEG , JPEG 2000 и т. Д.) И «расширения JPEG», которые могут или не могут перекрываться в расширении имени файла и объявленном типе MIME.
Еще одна непонятная вещь - RFC 3745 , похоже, не соответствует типам носителей IANA, однако RFC 3745 должен информировать документ IANA Media Types . Например, в RFC 3745 .jpf
является предпочтительным расширением файла, image/jpx
но в IANA Media Types имя jpf
отсутствует (и этот документ IANA ссылается на RFC 3745 !).
Еще одна непонятная вещь - IANA Media Types перечисляет «имена», но не перечисляет «расширения имен файлов». Это специально, но путает попытки сопоставления расширений имен файлов с типами MIME.
Еще одна запутанная вещь: это « mime », или « MIME », или « MIME-тип », или « mime-тип », или « mime / type », или « media type »⁉⁉
Самый официальный кажущийся документ IANA на удивление неадекватен. MIME-тип не зарегистрирован для расширения файла, .jpg
но существует нечетное vnd.sealedmedia.softseal.jpg
. Расширение файла .JPEG
известно только как video
тип, в то время как расширение файла .jpeg
является типом изображения (когда строчные и прописные буквы начинали иметь значение !?). В то же время, jpeg2000
это тип video
еще RFC 3745 рассматривает JPEG 2000image
типа! Список IANA, кажется, обслуживает специфичные для компании форматы JPEG (например vnd.sealedmedia.softseal.jpg
).
Из-за предыдущих недоразумений трудно найти общепринятый канонический документ, который сопоставляет расширения имен файлов с типами MIME, особенно для формата файлов изображений JPEG.
Связанный вопрос « Список ВСЕХ MimeTypes на Планете, сопоставленных с Файловыми Расширениями? ».
Здесь важно отметить, что тип MIME не совпадает с расширением файла. Иногда, однако, они имеют одинаковую ценность.
https://www.iana.org/assignments/media-types/media-types.xhtml включает в себя список зарегистрированных типов Mime, хотя ничто не мешает вам создать свой собственный, если вы одновременно используете и принимающая сторона. Вот где Microsoft приходит к картине.
Там, где есть большая путаница, это тот факт, что операционные системы имеют свой собственный способ определения типов файлов с помощью конечного конца имени файла, называемого расширением. В современных операционных системах полное имя представляет собой одну длинную строку, но в более примитивных операционных системах оно рассматривается как отдельный атрибут.
Операционная система, вызвавшая путаницу, - MSDOS, расширение которой ограничено 3 символами. Это ограничение до сих пор наследуется в устройствах, таких как SD-карты, которые до сих пор хранят данные таким же образом.
Одним из побочных эффектов этого ограничения является то, что некоторые расширения файлов, например, .gif
соответствуют их типу Mime image/gif
, тогда как другие скомпрометированы. Это включает, image/jpeg
чье расширение сокращено до .jpg
. Даже в современной Windows, где ограничение снято, Microsoft никогда не отпускает прошлое, поэтому расширение файла по-прежнему является сокращенной версией.
Учитывая, что это:
Краткий ответ:
image/jpg
, поэтому ответ таков:image/jpeg
Пока мы на этом ...
Устаревшие версии Internet Explorer позволили загружать jpeg
файлы с помощью Mime Type image/pjpeg
, что, конечно, просто означает больше работы для всех остальных. Они также загрузили png
файлы как image/x-png
.
Нет, image/jpg
но вы можете использовать.jpg
пример
<input type="file" accept=".jpg"/>
Источник: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers