Esiste un tipo mime generico per tutti i file di immagine?


27

So che posso usare i tipi mime specifici elencati qui per esempio , o un tipo mime generico per qualsiasi tipo di file application/octet-stream, ma esiste un tipo mime generico per tutti i file di immagine?

(Voglio modificare un .desktopfile in Linux Mint KDE per creare una voce del menu contestuale 'Azione' in Dolphin File Manager che verrebbe mostrata solo per i file di immagine.)


1
Funzionerebbe image/*(come fanno i browser)?
Boldewyn,

@Boldewyn - image/*funziona per lo scopo indicato nella mia domanda, anche per i svgfile - cioè come una voce del desktop come MimeType=image/*. Per favore, rispondi a questa domanda più specifica a cui commenta è la risposta.

Risposte:


26

Esiste un tipo mime generico per tutti i file di immagine?

Normalmente non c'è, ma ci sono un paio di eccezioni documentate più avanti in questa risposta.

È necessario un tipo Mime per sapere come elaborare un file (senza leggere l'intestazione del file).

Gli appunti:

  • Non tutti i file di immagine hanno un'intestazione che identifica il loro tipo.

  • I file SVG , ad esempio, sono solo file XML. Quindi senza il mimetype o l'estensione corretti non ci sarebbe modo di identificare correttamente il tipo di file.

  • I tipi Mime sono specificati come Tipo di contenuto / sottotipo

  • Non esiste un tipo Mime image/generic(vedi "Ulteriori letture" di seguito per l'elenco completo dei sottotipi di immagini registrate IANA).


Significa che esiste un tipo mime per più file di immagine?

Non esiste un singolo Content-Type/subtype che copra più formati di immagine.

In teoria potresti usare un Sottotipo sconosciuto come image/xyzma W3C dice esplicitamente:

"un tipo di contenuto di image/xyzè sufficiente per dire a un agente utente che i dati sono un'immagine, anche se l'agente utente non è a conoscenza del formato immagine specifico xyz..." tale azione potrebbe essere ragionevole per sottotipi di testo non riconosciuti, ma non per sottotipi non riconosciuti di immagine o audio "

In generale, il tipo di contenuto di livello superiore viene utilizzato per dichiarare il tipo generale di dati, mentre il sottotipo specifica un formato specifico per quel tipo di dati.

Pertanto, un tipo di contenuto di "image / xyz" è sufficiente per dire a un agente utente che i dati sono un'immagine, anche se l'agente utente non è a conoscenza del formato specifico dell'immagine "xyz".

Tali informazioni possono essere utilizzate, ad esempio, per decidere se mostrare o meno a un utente i dati grezzi di un sottotipo non riconosciuto - un'azione del genere potrebbe essere ragionevole per sottotipi di testo non riconosciuti, ma non per sottotipi di immagini o audio non riconosciuti.

Per questo motivo, i sottotipi registrati di audio, immagine, testo e video non devono contenere informazioni incorporate di tipo realmente diverso. Tali tipi composti dovrebbero essere rappresentati usando i tipi "multipart" o "application".

W3C di origine : il campo dell'intestazione del tipo di contenuto


Posso usare un jolly come image/*per il mio caso speciale?

in modo che possa essere utilizzato per il mio scopo senza la necessità di specificare le singole estensioni / mimi di file?

Sì. Come hai sottolineato, è possibile utilizzare un carattere jolly quando si specifica la "Voce desktop" per gli ambienti desktop KDE e GNOME.

Tuttavia, tieni presente che Key = MimeTypeè obsoleto in quanto esiste un nuovo standard per questo.

Type=MimeTypeè obsoleto in quanto esiste un nuovo standard per questo ora, vedere la specifica del database di informazioni MIME condivise per ulteriori informazioni. Di conseguenza, anche i modelli di chiavi (varie estensioni di file associate al tipo MIME) e DefaultApp (l'applicazione predefinita associata a questo tipo MIME) sono deprecati.

Specifica della voce desktop di origine

Puoi anche usare i caratteri jolly per i tipi mime in IIS, ma ti consigliamo di non farlo:

È inoltre possibile configurare IIS per servire tipi di file non definiti aggiungendo un tipo MIME con carattere jolly (*).

Non utilizzare i tipi MIME con caratteri jolly sui server di produzione. In questo modo, IIS può pubblicare file non riconosciuti e visualizzare informazioni riservate agli utenti.

I tipi MIME con caratteri jolly sono destinati a scopi di test o in scenari in cui i filtri ISAPI (Internet Server API) sono stati sviluppati appositamente per gestire questi scenari con caratteri jolly, ad esempio un ISAPI di autenticazione personalizzato.

Fonte Creazione di tipi MIME globali


Ulteriori letture


Vuol dire che esiste un tipo MIME per più file di immagine - non tutti, ma molti, in modo che possa essere utilizzato per il mio scopo senza la necessità di specificare le singole estensioni / mimi di file?

2
@cipricus Non esiste un singolo content-type/subtype che copra i formati di immagini muliple.
David Post

@cipricus Risposta aggiornata per rispondere al tuo commento.
DavidPostill

come indicato in un commento sotto la mia domanda, image/*funziona per lo scopo indicato nella mia domanda, anche per i svgfile, cioè come una voce del desktop come MimeType=image/*.

Potrebbe funzionare, ma in base alle specifiche della voce desktop - " Type=MimeTypeè obsoleto in quanto esiste un nuovo standard per questo ora, vedere la specifica del database di informazioni MIME condivise per ulteriori informazioni. Di conseguenza, i modelli di chiavi (varie estensioni di file associate al Anche il tipo MIME) e DefaultApp (l'applicazione predefinita associata a questo tipo MIME) sono obsoleti. "
DavidPostill

2

Secondo questa risposta SO non esiste un tipo MIME generico. Il problema è che il tipo MIME è sempre composto da un tipo, un sottotipo e un parametro opzionale: Type/Subtype; Parameter(vedi qui ). Si desidera utilizzare solo il tipo, ma per definizione è richiesto un sottotipo e non esiste un sottotipo generico. Un elenco di tutti i tipi di immagine è disponibile qui .


Stranamente, quell'elenco di "tutti" i tipi di immagine ha spazi vuoti per gife jpeg, mentre questo elenco sitepoint.com/web-foundations/mime-types-complete-list mostra che sono image/gife image/jpegrispettivamente.
user664833
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.