Досить просте запитання, але, здається, не можна знайти його в Інтернеті. Я намагаюся зробити програму, яка в залежності від типу файлу дасть мені розширення.
Досить просте запитання, але, здається, не можна знайти його в Інтернеті. Я намагаюся зробити програму, яка в залежності від типу файлу дасть мені розширення.
Відповіді:
Ні, image/jpg
не те саме, що image/jpeg
, тількиimage/jpeg
розпізнається як фактичний тип mime для файлів JPEG.
Дивіться https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Подання неправильного типу вмісту 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 Image та пов'язаних з ними типів 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 s (наприклад, прогресивний формат зображення JPEG , JPEG 2000 , etcetera) та "розширення JPEG", які можуть або не перекриватись у розширенні імені файлу та оголошеному типі MIME.
Ще одна заплутаність - RFC 3745 не відповідає стандартам IANA Media, але RFC 3745 повинен повідомити про документ IANA Media Types . Наприклад, в RFC 3745 .jpf
є кращим розширенням файлу, image/jpx
але в типах Media IANA його jpf
немає (і що посилання на документ IANA посилається на RFC 3745 !).
Інша заплутана річ - це типи медіа-файлів IANA, які перераховують "імена", але не містять "розширення імен файлів". Це цілеспрямовано, але плутає намагання зіставити розширення імен файлів у типи MIME.
Інша заплутана річ: це " mime ", або " MIME ", або " MIME type ", або " mime type ", або " mime / type ", або " тип медіа " "⁉ 😧
Найбільш офіційний, здавалося б, документ IANA напрочуд неадекватний. Для розширення файлу .jpg
не зареєстровано жодного типу MIME, але існує незвичайний 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, хоча нічого не заважає скласти свій власний, якщо ви обидва відправляєте. і приймальний кінець. Ось де Майкрософт приходить до картини.
Там, де існує велика плутанина, той факт, що в операційних системах є свій спосіб ідентифікації типів файлів за допомогою хвостового кінця імені файлу, який називається розширенням. У сучасних операційних системах вся назва - одна довга струна, але в більш примітивних операційних системах вона трактується як окремий атрибут.
ОС, яка викликала плутанину, - це MSDOS, який обмежив розширення на 3 символи. Це обмеження успадковується донині на таких пристроях, як SD-карти, які все ще зберігають дані таким же чином.
Одним з побічних ефектів цього обмеження є те, що деякі розширення файлів, наприклад, .gif
відповідають їх типу Mime image/gif
, а інші піддаються компрометації. Сюди входить, image/jpeg
чиє розширення скорочено до .jpg
. Навіть у сучасних Windows, де знято обмеження, Microsoft ніколи не відпускала минуле, і тому розширення файлу все ще є скороченою версією.
З огляду на те, що:
Коротка відповідь:
image/jpg
, тому відповідь - це не те саме, щоimage/jpeg
Поки ми в цьому ...
Спадкові версії Internet Explorer взяли на себе можливість завантажувати jpeg
файли з Mime Type of 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