2011-11-30 14 views
20

新しいタブでimage/x-pngタイプの画像を開きましたが、Chromeはそれをダウンロードしました。 私はそれを見つけて、Chromeが画像ファイルとしてイメージ/ x-pngを解釈しないことを発見しました。ChromeのMIMEタイプのマッピングを編集するにはどうすればよいですか?

私はChromeのMIMEタイプマッピングを編集したいと思います。出来ますか?

+0

私は考えがありますが、テストデータが必要です。質問に偽のレスポンスヘッダー(image/x-png)を含むURLをいくつか追加してください。 – kriegaex

+0

最終的にいくつかのテスト画像が見つかりましたhttps://bugs.adobe.com/jira/browse/SDK-32051 http://stackoverflow.com/q/9097781/962091 – zackdever

+0

のおかげでそれらの画像は通常の画像/ pngです私はローカルWebサーバー(目的に合っていない)でテストしました。 – kriegaex

答えて

17

あなたは私のコメントに答えていないので、私はあなたの質問を忘れて、賞金を失った。ブラウザでPNGを直接表示するために、コンテキストメニューをクリックする必要がないため、私の答えは少し簡単です。

Chromeの拡張子Redirectorは、HTTP応答ヘッダーを置き換えるように設定できます。私は「.PNG」で終わるすべてのURLのためのContent-Typeヘッダを置き換えるルールを作成しました:

、テキストエディタにこのJSONコードを貼り付けpng_rule.jsonとして保存し、リダイレクタ設定ではルールマネージャに移動します、IM- /エクスポートオプションを開き、ルールバージョン1インポートするファイルをクリックします。すべての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},"enabled":1}] 

することは問題ないはずです。

更新:は、単純なパターンマッチを、著者またはリダイレクタが示唆しているより厳密な正規表現に置き換えました。


アップデート2:のみページの一部としてPNGを埋め込む「.PNG」で終わるPNGの添付ファイルのURLを生成Tracのようなシステムが、実際にされたHTMLページがあります。それ以外の場合はHTMLページのコンテンツタイプは、それがtext/htmlの残るべきにもかかわらず画像/ PNGに設定されますので、このケースでは、ホストをブラックリストする必要があります。 のためリダイレクタの制限は、一致したURLと部分置換のためにヘッダーを上書きできるだけです。唯一PNG代わりX-PNGで、不可能であり、我々は明示的に正規表現マッチで特定のホストを除くのではなく醜いアプローチを使用する必要があります。例えば。

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

は、ホスト名trac.edgewall.orgまたはfreetz.orgのいずれかを含むURLを除外します。

[{"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}] 

2つの試験のURLがブラックリストとすることなく、ルールの以前のバージョンで(すなわち代わりにHTMLページの空の「画像」を示す)失敗:フルJSONをリダイレクターにインポートするバージョン2のルールです今ブラックリストなどの新ルールで機能している:

正規表現を少し知っているだけであれば、他のURLを簡単に追加できます。

ところで:Trac URLでは、ブラックリストに「/ attachment/ticket /」という共通部分を使うのが良いでしょう。この方法で、固定ホストリストではなく、世界中のすべてのTracインストールをブラックリストに登録することができます。

[{"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}] 

アップデート3:リダイレクタはもはやクローム店で利用可能ですが、歴史的なバージョンが古いRedirector home pageからダウンロードすることができますので、これはルールバージョン3です。

+0

「リダイレクタ」のリンクが壊れているようです。あなたは別のものをお勧めできますか? – jtheletter

+2

ユーザー@Mardokは、リダイレクタの(古いバージョン)をどこで見つけるかという質問に答えました。繰り返し:https://code.google.com/p/chrome-redirector/downloads/list – kriegaex

13

あなたが、あなたのMIMEタイプマッピングを編集"View As MIME Type" in Chrome or Firefox

https://stackoverflow.com/a/8724758/962091が特に重要である。この答えを見ることができないようです。著者は、グローバルな処理メカニズムを提供していないが、右クリックで追加されたメニュー項目を使用して、さまざまなMIMEタイプとしてファイルを開くようChrome拡張機能のソースを作成してオープンしました。

EDIT:

デフォルトで拡張子のみがtext/htmltext/plainとして開くためのオプションがありますが、拡張設定で、image/pngを含むお好きな拡張子を追加することができます。ここにはtest imageがあります。

This bug was moved to Untriaged on August 13, 2012 in the Chromium bug tracker、うまくいけば、これは、同様Chromeですぐに修正される予定です。

+1

テスト画像のリンクが無効です – abbood

2

何らかの理由で、彼らはchrome web shopからリダイレクタを削除しました。あなたは、リダイレクタhere

のいずれかのバージョンをここで見つけることができます.GIFと.pngのフォーマットの.jpgためのJSONです:

[{ "名": "X-PNG - > PNG"、 "一致": {"str": "Content-Type"、 "type": "4"、 "modi"}: true、 "modg":true}、 "repl":{"str": "image/png"、 "decode":false}、 "enabled":1}、{"name": "x-jpg - > jpg ""、 "": ""、 "": ""、 "": "" 4、 "modi":true、 "modg":true}、 "repl":{"str": "image/jpg"、 "decode":false}、 "enabled":1}、{"name" "str": "\ .gif $"、 "type":0、 "modi":false}、 "sub":{"str": "Content-Type "、"タイプ ":4、" modi ":true、" modg ":true}、" repl ":{" str ":" image/gif "、" decode ":false}、" enabled ":1}]

1

コンテンツタイプとパターンを変更できるChrome拡張機能があるため、ダウンロードする代わりにpngを強制的に表示することができます(ただし、他の多くのケースでは有効です。 txtをHTMLとしてレンダリングする):Modify Content-Type Chrome Extension

関連する問題