Existe-t-il un type mime générique pour tous les fichiers image?

27

Je sais que je peux utiliser les types MIME spécifiques listés par exemple ici , ou un type MIME générique pour n'importe quel fichier comme application/octet-stream, mais existe-t-il un type MIME générique pour tous les fichiers image?

(Je souhaite modifier un .desktopfichier dans Linux Mint KDE pour créer une entrée de menu contextuel 'Action' dans Dolphin File Manager qui ne serait affichée que pour les fichiers image.)

Excellll
la source
1
Fonctionnerait image/*(comme le font les navigateurs)?
Boldewyn
@Boldewyn - image/*fonctionne dans le but indiqué dans ma question, même pour les svgfichiers - c'est-à-dire comme une entrée de bureau comme MimeType=image/*. Veuillez répondre à cette question plus spécifique à laquelle vous commentez est la réponse.

Réponses:

26

Existe-t-il un type mime générique pour tous les fichiers image?

Normalement, il n'y en a pas, mais il y a quelques exceptions documentées plus loin dans cette réponse.

Vous avez besoin d'un type MIME pour savoir comment traiter un fichier (sans avoir à lire l'en-tête du fichier).

Remarques:

  • Tous les fichiers image n'ont pas un en-tête qui identifie leur type.

  • Les fichiers SVG , par exemple, ne sont que des fichiers XML. Ainsi, sans le type de mime ou l'extension correct, il n'y aurait aucun moyen d'identifier correctement le type du fichier.

  • Les types MIME sont spécifiés comme Content-Type / sous-type

  • Il n'y a pas de type MIME image/generic(voir "Lectures complémentaires" ci-dessous pour la liste complète des sous-types d'images enregistrés IANA).


Cela signifie-t-il qu'il existe un type MIME pour plusieurs fichiers image?

Il n'y a pas unique Content-Type/subtype couvrant plusieurs formats d'image.

En théorie, vous pourriez utiliser un sous-type inconnu tel que, image/xyzmais le W3C dit explicitement:

"un Content-Type de image/xyzsuffit pour dire à un agent utilisateur que les données sont une image, même si l'agent utilisateur n'a aucune connaissance du format d'image spécifique xyz..." une telle action peut être raisonnable pour des sous-types de texte non reconnus, mais pas pour les sous-types d'image ou audio non reconnus "

En général, le type de contenu de niveau supérieur est utilisé pour déclarer le type général de données, tandis que le sous-type spécifie un format spécifique pour ce type de données.

Ainsi, un type de contenu "image / xyz" suffit pour dire à un agent utilisateur que les données sont une image, même si l'agent utilisateur n'a aucune connaissance du format d'image spécifique "xyz".

Ces informations peuvent être utilisées, par exemple, pour décider d'afficher ou non à un utilisateur les données brutes d'un sous-type non reconnu - une telle action peut être raisonnable pour les sous-types de texte non reconnus, mais pas pour les sous-types d'image ou audio non reconnus.

Pour cette raison, les sous-types enregistrés d'audio, d'image, de texte et de vidéo ne doivent pas contenir d'informations intégrées d'un type vraiment différent. Ces types composés doivent être représentés à l'aide des types "multipart" ou "application".

Source W3C - Le champ d'en-tête de type de contenu


Puis-je utiliser un caractère générique comme image/*pour mon cas spécial?

afin qu'il puisse être utilisé à mes fins sans avoir besoin de spécifier les extensions / mimes de fichiers singuliers?

Oui. Comme vous l'avez souligné, un caractère générique peut être utilisé lors de la spécification de "l'entrée de bureau" pour les environnements de bureau KDE et GNOME.

Cependant, veuillez noter que Key = MimeTypeest déconseillé car il existe une nouvelle norme pour cela.

Type=MimeTypeest obsolète car il existe une nouvelle norme pour cela maintenant, consultez la spécification de la base de données MIME-info partagée pour plus d'informations. En conséquence, les modèles de clés (diverses extensions de nom de fichier associées au type MIME) et DefaultApp (l'application par défaut associée à ce type MIME) sont également obsolètes.

Spécifications d'entrée du bureau source

Vous pouvez également utiliser des caractères génériques pour les types MIME dans IIS, mais il est conseillé de ne pas le faire:

Vous pouvez également configurer IIS pour servir des types de fichiers non définis en ajoutant un type MIME de caractère générique (*).

N'utilisez pas de types MIME génériques sur les serveurs de production. Dans le cas contraire, IIS peut diffuser des fichiers non reconnus et afficher des informations sensibles aux utilisateurs.

Les types MIME génériques sont destinés à des fins de test ou dans des scénarios où des filtres ISAPI (Internet Server API) ont été développés spécifiquement pour gérer ces scénarios génériques, par exemple, une authentification ISAPI personnalisée.

Source créant des types MIME globaux


Lectures complémentaires

DavidPostill
la source
Cela signifie-t-il qu'il existe un type mime pour plusieurs fichiers image - pas tous, mais beaucoup, afin qu'il puisse être utilisé à mes fins sans avoir besoin de spécifier les extensions de fichier / mimes singuliers?
2
@cipricus Il n'y a pas simple content-type/subtype que couvre Muliple formats d'image.
DavidPostill
@cipricus Réponse mise à jour pour répondre à votre commentaire.
DavidPostill
comme indiqué dans un commentaire sous ma question, image/*fonctionne dans le but indiqué dans ma question, même pour les svgfichiers - c'est-à-dire comme une entrée de bureau comme MimeType=image/*.
Cela peut très bien fonctionner, mais selon Desktop Entry Specification - " Type=MimeTypeest déconseillé car il existe une nouvelle norme pour cela maintenant, consultez la spécification de la base de données MIME-info partagée pour plus d'informations. En conséquence, les modèles de clés (diverses extensions de nom de fichier associées à la Type MIME) et DefaultApp (l'application par défaut associée à ce type MIME) sont également obsolètes. "
DavidPostill
2

Selon cette réponse SO, il n'y a pas de type MIME générique. Le problème est que le type MIME est toujours composé d'un type, d'un sous-type et d'un paramètre facultatif: Type/Subtype; Parameter(voir ici ). Vous souhaitez uniquement utiliser le type, mais par définition, un sous-type est requis et il n'y a pas de sous-type générique. Une liste de tous les types d'images peut être trouvée ici .

jrast
la source
Curieusement, cette liste de "tous" les types d'images a des espaces pour gifet jpeg, tandis que cette liste sitepoint.com/web-foundations/mime-types-complete-list montre qu'ils le sont image/gifet image/jpegrespectivement.
user664833