web-dev-qa-db-fra.com

Comment puis-je modifier les mappages de type Chrome MIME?

J'ai ouvert une image de type image/x-png dans un nouvel onglet, mais Chrome vient de la télécharger. Je l'ai googlé et j'ai découvert que Chrome n'interprète pas image/x-png comme fichier image.

Je souhaite donc modifier les mappages de type MIME de Chrome. C'est possible?

23
Ohgyun Ahn

Dommage que vous n'ayez pas répondu à mon commentaire, j'ai donc oublié votre question et perdu la prime. Je suppose que ma réponse est encore un peu plus facile à utiliser pour vous car vous n'avez pas besoin de cliquer sur les menus contextuels pour voir les PNG directement dans le navigateur:

L'extension Chrome redirecteur peut être configurée pour remplacer les en-têtes de réponse HTTP. J'ai créé une règle remplaçant l'en-tête Content-Type pour toute URL se terminant par ".png":

Collez ce code JSON dans un éditeur de texte, enregistrez-le sous png_rule.json puis dans les paramètres du redirecteur, accédez à Gestionnaire de règles, cliquez sur Fichiers pour ouvrir les options im-/export et importer la règle version 1:

[{"name":"x-png -> png","match":{"str":"\\.png$","type":0,"modi":false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

Désormais, tous vos fichiers PNG devraient être corrects.

Mise à jour: a remplacé la correspondance de modèle simple par une correspondance regex plus stricte comme suggéré par l'auteur ou le redirecteur.


Mise à jour 2: Il existe des systèmes comme Trac qui produisent des URL pour les pièces jointes PNG se terminant par ".png", mais réellement HTML pages qui n'intègrent le PNG que dans le cadre de la page. Dans ce cas, nous devons mettre les hôtes sur liste noire, sinon le type de contenu de la page HTML serait défini sur image/png même s'il devrait rester text/html. En raison de Redirector la limitation des en-têtes peut simplement être écrasée pour les URL correspondantes et le remplacement partiel, par exemple seulement png au lieu de x-png, est impossible, nous devons utiliser une approche plutôt laide d'exclure explicitement certains hôtes dans la correspondance d'expression régulière. Par exemple.

^https?://(?!([^/]+\.)?(?:trac\.edgewall\.org|freetz\.org)/).*\.png$

exclurait les URL contenant soit le nom d'hôte trac.edgewall.org ou freetz.org. Le JSON complet à importer dans Redirector est la règle version 2:

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+\\.)?(?:trac\\.edgewall\\.org|freetz\\.org)/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

Deux URL de test échouant (c'est-à-dire montrant des "images" vides au lieu de pages HTML) avec la version précédente de la règle sans liste noire et fonctionnant maintenant avec la nouvelle règle, y compris la liste noire, sont:

Il est facile d'ajouter d'autres URL si vous connaissez un peu l'expression régulière ou si vous ne faites que jouer.

Soit dit en passant: pour les URL Trac, une bonne alternative serait d'utiliser la partie commune "/ attachment/ticket /" pour la liste noire. De cette façon, vous pouvez mettre sur liste noire toutes les installations Trac dans le monde au lieu d'une liste d'hôtes fixe. C'est donc la règle version 3:

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+)?/attachment/ticket/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

Mise à jour 3: Le redirecteur n'est plus disponible dans Chrome store, mais les versions historiques peuvent être téléchargées de l'ancien - page d'accueil du redirecteur .

19
kriegaex

Il semble que vous ne puissiez pas modifier vos mappages de type MIME, voir "Afficher en tant que type MIME" dans Chrome ou Firefox

Cette réponse https://stackoverflow.com/a/8724758/962091 est d'un intérêt particulier. L'auteur a créé et ouvert une extension Chrome pour ouvrir des fichiers sous différents types MIME via un élément de menu ajouté sur clic droit, bien qu'il ne fournisse pas de mécanisme de gestion global.

MODIFIER:

L'extension par défaut n'a que les options pour s'ouvrir comme text/html et text/plain, mais vous pouvez ajouter toutes les extensions que vous aimez, y compris image/png, dans les paramètres des extensions. Voici un image de test .

Ce bogue a été déplacé vers Untriaged le 13 août 2012 dans l'outil de suivi des bogues de Chromium , donc j'espère que cela sera corrigé bientôt dans Chrome également.

15
zackdever

Pour une raison quelconque, ils ont supprimé le redirecteur de chrome. Vous pouvez trouver n'importe quelle version du redirecteur ici

Voici json pour les formats .jpg .gif et .png:

[{"name": "x-png -> png", "match": {"str": "\. png $", "type": 0, "modi": false}, "sub": {" str ":" Content-Type "," type ": 4," modi ": true," modg ": true}," repl ": {" str ":" image/png "," decode ": false}, "activé": 1}, {"nom": "x-jpg -> jpg", "match": {"str": "\. jpg $", "type": 0, "modi": false}, "sub": {"str": "Content-Type", "type": 4, "modi": true, "modg": true}, "repl": {"str": "image/jpg", " décoder ": false}," activé ": 1}, {" nom ":" x-gif -> gif "," match ": {" str ":" \. gif $ "," type ": 0," modi ": false}," sub ": {" str ":" Content-Type "," type ": 4," modi ": true," modg ": true}," repl ": {" str ":" image/gif "," décoder ": faux}," activé ": 1}]

2
Mardok

Il existe une extension Chrome qui peut changer le type de contenu et la disposition de n'importe quel modèle, elle peut donc être utilisée pour forcer l'affichage de png au lieu du téléchargement (mais elle est bonne dans de nombreux autres cas) , Je l'utilise pour rendre txt en HTML): Modifier le type de contenu Chrome