0
有沒有什麼方法可以在下載文件之前識別MIME類型的文件(只有在知道URL時)? 例如,如果我想僅爲某些特定類型顯示我的上下文菜單項。或者,應根據下載類型更改下載屏幕。如何在下載之前獲取文件的MIME類型?
有沒有什麼方法可以在下載文件之前識別MIME類型的文件(只有在知道URL時)? 例如,如果我想僅爲某些特定類型顯示我的上下文菜單項。或者,應根據下載類型更改下載屏幕。如何在下載之前獲取文件的MIME類型?
您可以使用nsIMIMEService.getTypeFromURI()
從文件擴展名中獲取MIME類型,它將從文件擴展名中獲取MIME類型。沿着這些線路:
var uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI("http://example.com/test.gif", null, null);
var mimeService = Components.classes["@mozilla.org/mime;1"]
.getService(Components.interfaces.nsIMIMEService);
var mime = mimeService.getTypeFromURI(uri);
當然,這是沒有什麼接近可靠 - MIME類型的URL可以是任何東西,text.gif
可以是HTML頁面或SVG圖像或其他任何東西。所以獲得MIME類型的唯一方法是開始下載。
謝謝,弗拉基米爾。在顯示下載窗口之前,FF是否開始下載文件?上面的代碼無法檢測MIME類型,但FF顯示鏈接正確 - http://dl.rutracker.org/forum/dl.php?t=3272931。 – 2012-01-07 20:33:57
是的,Firefox首先下載 - 否則它甚至不知道它需要顯示下載窗口。 – 2012-01-07 22:06:13
如何在我的擴展中執行相同操作(開始下載以檢測MIME類型,然後停止它)?是否有任何示例要檢查? – 2012-01-08 06:53:56