Dość proste pytanie, ale wydaje się, że nie można go znaleźć nigdzie w Internecie. Próbuję stworzyć program, który w zależności od typu pliku da mi rozszerzenie.
file
mime-types
Joe Scotto
źródło
źródło
Odpowiedzi:
Nie,
image/jpg
to nie to samo, coimage/jpeg
tylkoimage/jpeg
jest rozpoznawany jako faktyczny typ MIME dla plików JPEG.Zobacz https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Podanie niepoprawnego typu treści
image/jpg
do IE może powodować problemy, zobacz http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm .źródło
image/jpeg jpeg jpg;image/jpg jpeg jpg;
Dla tych, którzy mogą pomóc, używam tej listy jako odniesienia do zdefiniowania mojego typu zawartości, gdy mam do czynienia z obrazami w mojej aplikacji.
Mówi, że rozszerzenie jpg można zadeklarować za pomocą
Content-type : image/jpeg
Nie ma żadnego
image/jpg
atrybutu typu treści.źródło
tl; dr „standardy” to bałagan hodge-podge; zależy od kogo zapytasz!
Ogólnie wydaje się, że nie ma typu MIME
image/jpg
. W praktyce jednak prawie wszystkie programy dobrze sobie radzą z plikami obrazów o nazwie „*.jpg
”.Ten konkretny temat jest mylący, ponieważ różne powiązania rozszerzeń nazw plików powiązanych z typem MIME zależą od tego, która organizacja utworzyła tabelę rozszerzeń nazw plików z typami MIME. Innymi słowy, rozszerzenie nazwy pliku
.jpg
może obejmować wiele różnych rzeczy.Na przykład tutaj są trzy „pełne listy” i jedna RFC, które różnią się w zależności od różnych rozszerzeń nazw plików w formacie JPEG Image i powiązanych typów 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
(w tym dokumencie wymieniono „ nazwy” , a nie „ rozszerzenia nazw plików ”)
jpg
nie wspomnianyjpeg
→ patrz RFC 2045 (bez wzmianki), patrz 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
rozszerzenie pliku nie wspomniane.jpeg
rozszerzenie pliku nie wspomniane.jp2
,.jpg2
→image/jp2
( JPEG 2000 ) 9.jpf
,.jpx
→image/jpx
( dane obrazu zakodowane w formacie JPEG 2000 ISO-JPEG2000-2 ) 10.mj2
,.mjp2
→video/mj2
( Motion JPEG 2000 ) 11.jpm
,.jpgm
→image/jpm
( Profile i rozszerzenia JPEG 2000 ) 12Te „pełne listy” i RFC nie mają typu MIME
image/jpg
! Ale dla typu MIMEimage/jpeg
niektóre listy nie mają różne rozszerzenia nazw plików (.jpeg
,.jpg
...). Inne listy nie wspominająimage/jpeg
.Istnieją również różne typy formatów JPEG (np. Progresywny format JPEG , JPEG 2000 itp.) I „Rozszerzenia JPEG”, które mogą, ale nie muszą nakładać się na rozszerzenie nazwy pliku i zadeklarowany typ MIME.
Inną mylącą rzeczą jest to, że RFC 3745 nie wydaje się pasować do typów mediów IANA, ale RFC 3745 powinien informować o dokumencie typów mediów IANA . Na przykład w RFC 3745
.jpf
jest preferowanym rozszerzeniem pliku,image/jpx
ale w typach nośników IANA nazwajpf
nie jest obecna (a dokument IANA odwołuje się do RFC 3745 !).Inną mylącą rzeczą jest to, że IANA Media Types wymienia „nazwy”, ale nie wymienia „rozszerzeń nazw plików”. Jest to celowe, ale myli wysiłek związany z mapowaniem rozszerzeń nazw plików na typy MIME.
Kolejna myląca rzecz: czy to „ mime ”, czy „ MIME ”, „ MIME type ”, „ mime type ”, „ mime / type ” lub „ media type ”⁉ 😧
Najbardziej oficjalny pozornie dokument IANA jest zaskakująco nieodpowiedni. Żaden typ MIME nie jest zarejestrowany dla rozszerzenia pliku,
.jpg
ale istnieje nieparzystavnd.sealedmedia.softseal.jpg
. Rozszerzenie pliku.JPEG
jest znane tylko jakovideo
typ, podczas gdy rozszerzenie pliku.jpeg
jest typem obrazu (kiedy małe i wielkie litery zaczęły mieć znaczenie !?). Jednocześniejpeg2000
jest typvideo
jeszcze RFC 3745 uważa JPEG 2000 zaimage
typ! Lista IANA wydaje się odpowiadać specyficznym dla firmy formatom JPEG (npvnd.sealedmedia.softseal.jpg
.).Z powodu wcześniejszych nieporozumień trudno jest znaleźć akceptowany w branży dokument kanoniczny, który mapuje rozszerzenia nazw plików na typy MIME, szczególnie w formacie JPEG Image File Format.
Podobne pytanie „ Lista WSZYSTKICH typów MimeTypes na planecie, zmapowanych do rozszerzeń plików? ”.
źródło
Należy tutaj zauważyć, że typ MIME nie jest taki sam jak rozszerzenie pliku. Czasami mają jednak tę samą wartość.
https://www.iana.org/assignments/media-types/media-types.xhtml zawiera listę zarejestrowanych typów MIME, choć nic nie stoi na przeszkodzie, abyś sam sobie wymyślił, o ile jesteś przy wysyłaniu i koniec odbierający. Oto, gdzie pojawia się Microsoft.
W przypadku wielu nieporozumień istnieje fakt, że systemy operacyjne mają swój własny sposób identyfikowania typów plików za pomocą końcówki nazwy pliku, zwanej rozszerzeniem. W nowoczesnych systemach operacyjnych cała nazwa jest jednym długim ciągiem, ale w bardziej prymitywnych systemach operacyjnych jest traktowana jako osobny atrybut.
System operacyjny, który spowodował zamieszanie, to MSDOS, który ograniczył rozszerzenie do 3 znaków. To ograniczenie jest dziedziczone do dziś w urządzeniach, takich jak karty SD, które nadal przechowują dane w ten sam sposób.
Jednym efektem ubocznym tego ograniczenia jest to, że niektóre rozszerzenia plików, takie jak
.gif
pasują do typu Mimeimage/gif
, podczas gdy inne są zagrożone. Obejmuje to,image/jpeg
którego rozszerzenie jest skrócone.jpg
. Nawet w nowoczesnym systemie Windows, w którym zniesiono ograniczenie, Microsoft nigdy nie puścił przeszłości, więc rozszerzenie pliku jest nadal skróconą wersją.Biorąc pod uwagę, że:
Krótka odpowiedź brzmi:
image/jpg
, więc odpowiedź jest taka, że to nie to samo coimage/jpeg
Skoro już przy tym jesteśmy…
Starsze wersje Internet Explorera pozwoliły na przesyłanie
jpeg
plików za pomocą Mime Typeimage/pjpeg
, co oczywiście oznacza po prostu więcej pracy dla wszystkich innych. Przesłali równieżpng
pliki jakoimage/x-png
.źródło
Nie masz,
image/jpg
ale możesz użyć.jpg
Przykład
Źródło: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers
źródło