Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
file
mime-types
Джо Скотто
источник
источник
Ответы:
Нет,
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
.jpg
расширение файла не указано.jpeg
расширение файла не указано.jp2
,.jpg2
→image/jp2
( JPEG 2000 ) 9.jpf
,.jpx
→image/jpx
( данные изображения в формате JPEG 2000 ISO-JPEG2000-2 ) 10.mj2
,.mjp2
→video/mj2
( Motion JPEG 2000 ) 11.jpm
,.jpgm
→image/jpm
( Профили и расширения JPEG 2000 ) 12Эти "полные списки" и 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
соответствуют их типу Mimeimage/gif
, тогда как другие скомпрометированы. Это включает,image/jpeg
чье расширение сокращено до.jpg
. Даже в современной Windows, где ограничение снято, Microsoft никогда не отпускает прошлое, поэтому расширение файла по-прежнему является сокращенной версией.Учитывая, что это:
Краткий ответ:
image/jpg
, поэтому ответ таков:image/jpeg
Пока мы на этом ...
Устаревшие версии Internet Explorer позволили загружать
jpeg
файлы с помощью Mime Typeimage/pjpeg
, что, конечно, просто означает больше работы для всех остальных. Они также загрузилиpng
файлы какimage/x-png
.источник
Нет,
image/jpg
но вы можете использовать.jpg
пример
Источник: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers
источник