2011-12-24 21 views
0

ダウンロードする前にファイルのMIMEタイプを特定する方法はありますか(URLのみが分かっている場合)? たとえば、特定の種類のコンテキストメニュー項目のみを表示したい場合。または、ダウンロードの種類に応じてダウンロード画面を変更する必要があります。ファイルをダウンロードする前にファイルのMIMEタイプを取得するにはどうすればよいですか?

答えて

1

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); 

- URLのMIMEタイプは何もすることができ、text.gifは、HTMLページやSVG画像や何かをすることができます。 MIMEタイプを取得する唯一の方法は、ダウンロードを開始することです。

+0

ありがとう、ウラジミール。 FFはダウンロードウィンドウを表示する前にファイルをダウンロードし始めますか?上記のコードはMIMEタイプを検出することができませんが、FFではリンクが正しく表示されます - http://dl.rutracker.org/forum/dl.php?t=3272931 –

+0

はい、Firefoxがダウンロードを開始します。そうしないと、ダウンロードウィンドウを表示する必要があることがわかりません。 –

+0

拡張機能で同じことをする方法(MIMEタイプを検出するためにダウンロードを開始してから停止する方法)確認する例はありますか? –

関連する問題