Довольно простой вопрос, но он не может найти его нигде в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
Является ли тип MIME 'image/jpg' таким же, как 'image/jpeg'?
Ответ 1
Нет, image/jpg
не совпадает с image/jpeg
, только image/jpeg
распознается как фактический тип mime для файлов 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.
Ответ 2
Для тех, кому это может помочь, я использую этот список в качестве справочного материала для определения своего типа контента, когда мне приходится иметь дело с изображениями в моем приложении.
Это говорит о том, что расширение jpg может быть объявлено с Content-type: image/jpeg
Для типа содержимого нет атрибута image/jpg
.
Ответ 3
tl;dr этозависит от того, кого вы спрашиваете
В целом, похоже, что MIME-тип отсутствует image/jpg
. Однако на практике почти все программное обеспечение прекрасно обрабатывает файлы изображений с именем "*.jpg
". Этот конкретный вопрос сбивает с толку, поскольку различная ассоциация расширения имени файла, связанного с типом MIME, зависит от того, какая организация создала таблицу расширений имен файлов для типов MIME. Другими словами, расширение имени файла .jpg
может быть много разных вещей.
Например, вот 3 "полных списка", которые различаются в зависимости от различных расширений имен файлов в формате JPEG и связанных с ними типов MIME.
- sitepoint.com mime-types-complete-list (в архиве)
.jfif
,.jfif-tbnl
,.jpe
,.jpeg
,.jpg
→image/jpeg
.jfif
,.jpe
,.jpeg
,.jpg
→image/pjpeg
- Mime-типы freeformatter.com (в архиве)
.jpeg
,.jpg
→image/jpeg
.jpeg
,.jpg
→image/x-citrix-jpeg
.pjpeg
→image/pjpeg
- Списки IANA "Media Types" (ранее известные как MIME-типы) (в архиве)
.jpeg
→ (ничего).JPEG
→video/JPEG
.jpm
→image/jpm
(относится к JPEG 2000).jpx
→image/jpx
(относится к JPEG 2000)vnd.sealedmedia.softseal.jpg
→image/vnd.sealedmedia.softseal.jpg
😖
Эти "полные списки" не имеют типа MIME image/jpg
! Но для MIME-типа image/jpeg
эти списки имеют различные расширения имен файлов (.jpeg
, .jpg
,…).
Кроме того, существуют различные типы форматов изображений JPEG (например, прогрессивный формат изображений JPEG, JPEG 2000 и т.д.), Которые могут или не могут перекрываться в расширении имени файла и объявленном типе MIME. Это добавляет к общей путанице.
Еще одна запутанная вещь: это "mime", или "MIME", или "MIME-тип", или "mime-тип", или "mime/type", или "media type"⁉ 😧
Похоже, что несколько организаций публикуют свое собственное расширение файла и документ отображения типов MIME ("полные списки").
Самый официальный кажущийся документ IANA на удивление неадекватен; ничего не зарегистрировано для типа изображения .jpeg
, а .JPEG
известен только как тип видео. Список IANA, кажется, обслуживает специфичные для компании форматы jpeg (например, vnd.sealedmedia.softseal.jpg
).
Из-за этого трудно найти общепринятый канонический документ для справки.
Смежный вопрос "Список ВСЕХ MimeTypes на планете, сопоставленных с расширениями файлов?".
Ответ 4
Здесь важно отметить, что тип 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
- Это не помешает некоторым операционным системам и программному обеспечению воспринимать его так, как если бы оно было