Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
Довольно простой вопрос, но, кажется, нигде не найти его в Интернете. Я пытаюсь сделать программу, которая в зависимости от типа файла даст мне расширение.
Ответы:
Нет, 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/pjpegjpg не упомянутоjpeg→ см. RFC 2045 (без упоминания), см. RFC 2046 → image/jpeg13JPEG → video/JPEGjpeg2000 → video/jpeg2000jpm→ 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