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.
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.
Odpowiedzi:
Nie, image/jpg
to nie to samo, co image/jpeg
tylko image/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 .
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.
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
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 MIME image/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 nazwa jpf
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 nieparzysta vnd.sealedmedia.softseal.jpg
. Rozszerzenie pliku .JPEG
jest znane tylko jako video
typ, podczas gdy rozszerzenie pliku .jpeg
jest typem obrazu (kiedy małe i wielkie litery zaczęły mieć znaczenie !?). Jednocześnie jpeg2000
jest typ video
jeszcze RFC 3745 uważa JPEG 2000 za image
typ! Lista IANA wydaje się odpowiadać specyficznym dla firmy formatom JPEG (np vnd.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? ”.
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 Mime image/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 Type image/pjpeg
, co oczywiście oznacza po prostu więcej pracy dla wszystkich innych. Przesłali również png
pliki jako image/x-png
.
Nie masz, image/jpg
ale możesz użyć.jpg
Przykład
<input type="file" accept=".jpg"/>
Źródło: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers