Domanda piuttosto semplice ma non riesco a trovarla ovunque online. Sto provando a creare un programma che a seconda del tipo di file mi darà l'estensione.
Domanda piuttosto semplice ma non riesco a trovarla ovunque online. Sto provando a creare un programma che a seconda del tipo di file mi darà l'estensione.
Risposte:
No, image/jpg
non è lo stesso di image/jpeg
, image/jpeg
è riconosciuto solo come il tipo mime effettivo per i file JPEG.
Vedi https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Offrire un tipo di contenuto errato image/jpg
a IE può causare problemi, consultare http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm .
image/jpeg jpeg jpg;image/jpg jpeg jpg;
Per quelli che potrebbero aiutare, uso questo elenco come riferimento per definire il mio tipo di contenuto quando devo gestire le immagini sulla mia app.
Dice che l'estensione jpg può essere dichiarata con Content-type : image/jpeg
Non esiste alcun image/jpg
attributo per il tipo di contenuto.
tl; dr gli "standard" sono un pasticcio hodge-podge; dipende da chi chiedi!
Nel complesso, non sembra esserci alcun tipo MIME image/jpg
. Tuttavia, in pratica, quasi tutti i software gestiscono i file di immagine " *.jpg
" proprio bene.
Questo particolare argomento è confuso perché l'associazione variabile dell'estensione del nome file associata a un tipo MIME dipende dall'organizzazione che ha creato la tabella delle estensioni dei nomi file con i tipi MIME. In altre parole, l'estensione del nome file .jpg
potrebbe essere molto diversa.
Ad esempio, ecco tre "elenchi completi" e un RFC che variano in base alle varie estensioni di file in formato JPEG e ai tipi MIME associati.
.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
Non menzionatojpeg
→ vedi RFC 2045 (nessuna menzione), vedi 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
estensione del file non menzionata.jpeg
estensione del file non menzionata.jp2
, .jpg2
→ image/jp2
( JPEG 2000 ) 9.jpf
, .jpx
→ image/jpx
( dati immagine codificati JPEG 2000 ISO-JPEG2000-2 ) 10.mj2
, .mjp2
→ video/mj2
( Motion JPEG 2000 ) 11.jpm
, .jpgm
→ image/jpm
( profili ed estensioni JPEG 2000 ) 12Questi "elenchi completi" e RFC non hanno il tipo MIME image/jpg
! Ma per MIME digitare image/jpeg
alcune liste non hanno diverse estensioni di file ( .jpeg
, .jpg
, ...). Altre liste non menzionano image/jpeg
.
Inoltre, ci sono diversi tipi di formati di immagine JPEG (ad es. Formato di immagine JPEG progressivo , JPEG 2000 , eccetera) e "estensioni JPEG" che possono o meno sovrapporsi nell'estensione del nome file e dichiarare il tipo MIME.
Un'altra cosa confusa è che RFC 3745 non sembra corrispondere ai tipi di supporti IANA, tuttavia RFC 3745 dovrebbe informare il documento Tipi di supporti IANA . Ad esempio, in RFC 3745 .jpf
è l'estensione di file preferita per, image/jpx
ma in Tipi di media IANA il nome jpf
non è presente (e quel documento IANA fa riferimento a RFC 3745 !).
Un'altra cosa confusa è IANA Media Tipi elenca "nomi" ma non elenca "estensioni di file". Questo è di proposito, ma confonde lo sforzo di mappare le estensioni di file ai tipi MIME.
Un'altra cosa confusa: è " mime ", o " MIME ", o " tipo MIME ", o " tipo mime ", o " mime / tipo " o " tipo di media "⁉ 😧
Il documento apparente più ufficiale di IANA è sorprendentemente inadeguato. Nessun tipo MIME è registrato per l'estensione del file .jpg
ma esiste uno strano vnd.sealedmedia.softseal.jpg
. L'estensione del file .JPEG
è conosciuta solo come un video
tipo mentre l'estensione del file .jpeg
è un tipo di immagine (quando le lettere minuscole e maiuscole hanno iniziato a importare !?). Allo stesso tempo, il jpeg2000
tipo è video
ancora RFC 3745 considera JPEG 2000 un image
tipo! L'elenco IANA sembra soddisfare formati jpeg specifici dell'azienda (ad es vnd.sealedmedia.softseal.jpg
.).
A causa delle confusioni precedenti, è difficile trovare un documento canonico accettato dal settore che associ le estensioni di file ai tipi MIME, in particolare per il formato file immagine JPEG.
Domanda correlata " Elenco di TUTTI i MimeTypes sul pianeta, mappati alle estensioni dei file? ".
La cosa importante da notare qui è che il tipo mime non è uguale all'estensione del file. A volte, tuttavia, hanno lo stesso valore.
https://www.iana.org/assignments/media-types/media-types.xhtml include un elenco di tipi Mime registrati, sebbene non vi sia nulla che ti impedisca di inventare il tuo, a condizione che tu sia a livello di invio e l'estremità ricevente. Ecco dove Microsoft entra in scena.
Dove c'è molta confusione è il fatto che i sistemi operativi hanno il loro modo di identificare i tipi di file usando la coda del nome del file, indicato come estensione. Nei moderni sistemi operativi, il nome intero è una stringa lunga, ma nei sistemi operativi più primitivi, viene trattato come un attributo separato.
Il sistema operativo che ha causato la confusione è MSDOS, che ha limitato l'estensione a 3 caratteri. Questa limitazione è ereditata fino ad oggi nei dispositivi, come le schede SD, che conservano ancora i dati allo stesso modo.
Un effetto collaterale di questa limitazione è che alcune estensioni di file, ad esempio .gif
corrispondono al loro tipo Mime image/gif
, mentre altre sono compromesse. Ciò include la image/jpeg
cui estensione è abbreviata .jpg
. Anche nelle moderne finestre Windows, dove la limitazione è stata eliminata, Microsoft non ha mai lasciato andare il passato, e quindi l'estensione del file è ancora la versione abbreviata.
Dato che:
La risposta breve è:
image/jpg
, quindi la risposta è che non è la stessaimage/jpeg
Mentre ci siamo ...
Le versioni legacy di Internet Explorer si sono liberate del caricamento di jpeg
file con Mime Type di image/pjpeg
, che, ovviamente, significa solo più lavoro per tutti gli altri. Hanno anche caricato i png
file come image/x-png
.
Non hai image/jpg
ma puoi usare.jpg
Esempio
<input type="file" accept=".jpg"/>
Fonte: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers