MIME-тип 'image / jpg' совпадает с 'image / jpeg'?

341

Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.

Джо Скотто
источник
10
AFAIK есть только тип "image / jpeg" freeformatter.com/mime-types-list.html#mime-types-list
Дейл
Должно быть, поздно ночью путаница. Я собираюсь просто попробовать это с "image / jpeg".
Джо Скотто

Ответы:

493

Нет, 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 .

Адриан Бейкер
источник
3
Что мы должны поместить в наши mime.types? image/jpeg jpeg jpg;image/jpg jpeg jpg;
cyber8200
40
Только изображение / JPEG
Джеймс Боне
Основная проблема, вызванная этим, заключается в том, что Safari открывает ссылку на изображение в Preview, а не в окне браузера, поскольку считает, что это неизвестный тип изображения (что технически так и есть).
Питер Флинн
16

Для тех, кому это может помочь, я использую этот список в качестве справочного материала для определения своего типа контента, когда мне приходится иметь дело с изображениями в моем приложении.

Это говорит о том, что расширение jpg может быть объявлено с Content-type : image/jpeg

Нет никакого image/jpgатрибута для типа контента.

lucyjosef
источник
7

TL; Dr "стандарты" беспорядок мешанина; это зависит от того, кого вы спрашиваете!

В целом, похоже, нет MIME-типа image/jpg. Однако на практике почти все программное обеспечение прекрасно обрабатывает файлы изображений с именем " *.jpg".
Эта конкретная тема сбивает с толку, поскольку различная ассоциация расширения имени файла, связанного с типом MIME, зависит от того, какая организация создала таблицу расширений имен файлов для типов MIME. Другими словами, расширение имени файла .jpgможет быть много разных вещей.

Например, вот три «полных списка» и один RFC, которые варьируются в зависимости от различных расширений имен файлов в формате JPEG и соответствующих типов MIME.

Эти "полные списки" и 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 на Планете, сопоставленных с Файловыми Расширениями? ».

JamesThomasMoon1979
источник
обычно есть только ОДИН источник, описывающий соответствующий стандарт, а не 4 (!). RFC - хорошая отправная точка!
simUser
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 никогда не отпускает прошлое, поэтому расширение файла по-прежнему является сокращенной версией.

Учитывая, что это:

  1. Расширения файлов не являются типами файлов
  2. Исторически, некоторые операционные системы имели серьезные ограничения имени файла
  3. Некоторые операционные системы будут просто создавать собственные правила

Краткий ответ:

  • Технически, такого понятия не существует image/jpg, поэтому ответ таков:image/jpeg
  • Это не помешает некоторым операционным системам и программному обеспечению воспринимать его так, как будто

Пока мы на этом ...

Устаревшие версии Internet Explorer позволили загружать jpegфайлы с помощью Mime Type image/pjpeg, что, конечно, просто означает больше работы для всех остальных. Они также загрузили pngфайлы как image/x-png.

Manngo
источник