2011-11-30 146 views
20

我在新標籤中打開了一個圖片/ x-png類型圖片,但Chrome剛下載了它。 我把它搜索了一遍,發現Chrome並沒有將image/x-png解釋爲圖像文件。如何編輯Chrome MIME類型映射?

所以,我想編輯我的Chrome的MIME類型映射。可能嗎?

+0

我有一個想法,但需要測試數據。請在您的問題中添加一些帶有假響應頭的網址(image/x-png)。 – 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響應標頭。我創建了一個規則替換Content-Type頭與「巴紐」結尾的任何網址:

粘貼此JSON代碼到文本編輯器,另存爲png_rule.json然後重定向設置去規則管理器,單擊文件打開的IM /導出選項和導入規則版本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}] 

從現在起你所有的PNG文件應該罰款。

更新:用作者或重定向器建議的更嚴格的正則表達式匹配取代了簡單模式匹配。


更新2:有喜歡Trac系統,其產生在「巴紐」結尾PNG附件的URL,但是真的是HTML頁面只嵌入PNG作爲頁面的一部分。在這種情況下,我們需要將主機列入黑名單,因爲否則HTML頁面的內容類型將設置爲image/png,即使它應該保留爲text/html。由於重定向器的侷限性,即只能爲相匹配的URL和部分替換覆蓋頭部,例如,只有png而不是x-png,是不可能的,我們需要使用一種相當醜陋的方法來顯式排除正則表達式匹配中的某些主機。例如。

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

將排除的URL包含任何主機名trac.edgewall.orgfreetz.org。完整的JSON導入到重定向是規則版本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}] 

兩個測試網址失敗(即顯示空的「圖像」,而不是HTML頁)不列入黑名單,並與以前版本的規則現在新的規則包括黑名單功能是:

如果您知道一些正則表達式或只是玩耍,那麼很容易添加其他URL。順便說一下:對於Trac URL,一個好的選擇是將公共部分「/ attachment/ticket /」用於黑名單。通過這種方式,您可以將所有Trac安裝在全球進行黑名單,而不是固定的主機列表因此,這是規則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}] 

更新3:重定向器不再在Chrome商店提供,但歷史版本可以從舊Redirector home page下載。

+0

上面的'重定向器'鏈接似乎已損壞。你能推薦另一個嗎? – jtheletter

+2

User @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是特別感興趣的。作者已經制作並開放了一個Chrome擴展,通過右鍵單擊添加的菜單項打開文件作爲不同的MIME類型,儘管它沒有提供全局處理機制。

編輯:

擴展默認情況下只需要打開任意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網上商店中刪除重定向器。你可以找到轉向器的任何版本here

這裏是.jpg,.gif和和.png格式JSON:

[{ 「Name」: 「X-PNG - > PNG」, 「匹配」: { 「STR」: 「\ PNG $。」, 「類型」:0, 「MODI」:假}, 「分」:{ 「STR」: 「內容類型」, 「類型」:4 「MODI」: true,「modg」:true},「repl」:{「str」:「image/png」,「decode」:false},「enabled」:1},{「name」:「x-jpg - > jpg 」, 「匹配」:{ 「STR」: 「\ JPG $」, 「類型」:0, 「作案」:假}, 「子」:{ 「STR」: 「內容類型」, 「類型」: 4, 「MODI」: 「modg」 真:真}, 「REPL」:{ 「STR」: 「圖像/ JPG」, 「解碼」:假}, 「使能」:1},{ 「名稱」:」 x-gif - > gif「,」match「:{」str「:」\。gif $「,」type「:0,」modi「:false},」sub「:{」str「:」Content- 」, 「類型」:4 「MODI」:真 「modg」:真}, 「REPL」:{ 「STR」: 「圖像/ GIF」, 「解碼」:假}, 「使能」:1}]

1

有一個Chrome擴展可以更改任何模式的內容類型和配置,所以它可以用來強制png顯示而不是下載(但對於其他很多情況,用它來渲染txt爲HTML):Modify Content-Type Chrome Extension