如何在下载之前获取文件的mime类型?

时间:2011-12-24 15:28:44

标签: firefox-addon download

有没有办法在下载之前识别mime类型的文件(当只知道url时)? 例如,如果我想仅针对某些特定类型显示我的上下文菜单项。或者,应根据下载类型更改下载屏幕。

1 个答案:

答案 0 :(得分: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类型的唯一真正方法是开始下载。