web-dev-qa-db-fra.com

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

Je sais que je peux utiliser les types de mime spécifiques tels qu'énumérés par exemple ici , ou un type de mime générique pour tout fichier tel que application/octet-stream, mais existe-t-il un type mime générique pour tous les fichiers image?

(Je souhaite modifier un fichier .desktop dans Linux Mint KDE pour créer une entrée de menu contextuel "Action" dans Dolphin File Manager, qui serait affichée uniquement pour les fichiers image.)

25
user162573

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

Normalement, il n'y en a pas, mais quelques exceptions sont décrites 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 d'en-tête identifiant leur type.

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

  • Les types MIME sont spécifiés en tant que type de contenu/sous-type

  • Il n'y a pas de type Mime image/generic (voir "Pour en savoir plus" ci-dessous pour obtenir la liste complète des sous-types d'image enregistrés par l'IANA).


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

Il n'y a pas de single Content-Type/subtype qui couvre plusieurs formats d'image.

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

"un type de contenu de image/xyz suffit à indiquer à un agent utilisateur que les données sont une image, même si l'agent utilisateur n'a pas connaissance du format d'image spécifique xyz ...", une telle action peut être raisonnable pour les sous-types de texte non reconnus , mais pas pour les sous-types d'image ou d'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 de "image/xyz" suffit à indiquer à un agent d'utilisateur que les données sont une image, même si l'agent d'utilisateur n'a pas connaissance du format d'image spécifique "xyz".

Ces informations peuvent être utilisées, par exemple, pour décider de montrer ou non aux utilisateurs 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 d'audio non reconnus.

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

Source W3C - Champ d'en-tête Content-Type


Puis-je utiliser un caractère générique tel que image/* pour mon cas particulier?

afin qu'il puisse être utilisé à mes fins sans qu'il soit nécessaire de spécifier les extensions de fichier singulier/mimes?

Oui. Comme vous l'avez indiqué, 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 = MimeType est obsolète car il existe une nouvelle norme pour cela.

Type=MimeType est obsolète car il existe une nouvelle norme pour cela, voir la spécification de la base de données MIME 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.

Source Spécification de l'entrée de bureau

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

Vous pouvez également configurer IIS pour qu'il serve des types de fichier non définis en ajoutant un type MIME avec caractère générique (*).

N'utilisez pas de types MIME génériques sur des serveurs de production. Cela pourrait avoir pour résultat que IIS serve des fichiers non reconnus et affiche des informations sensibles aux utilisateurs.

Les types MIME génériques sont destinés à des fins de test ou dans des scénarios dans lesquels 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 ISAPI d'authentification personnalisée.

Source Création de types MIME globaux


Lectures complémentaires

26
DavidPostill

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 voulez seulement 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 .

2
jrast