Content sniffer interface. Components implementing this interface can determine a MIME type from a chunk of bytes.
To implement this interface use net-content-sniffers category. See netwerk/build/nsNetCID.h about
Inherits from:
nsISupports
Last changed in Gecko 1.9 (Firefox 3)NS_CONTENT_SNIFFER_CATEGORY
.
Method overview
ACString getMIMETypeFromContent(in nsIRequest aRequest, [const,array,size_is(aLength)] in octet aData, in unsigned long aLength); |
Methods
getMIMETypeFromContent()
Given a chunk of data, determines a MIME type. Information from the given request may be used in order to make a better decision.
Note: Implementations should consider the request read-only. Especially, they should not attempt to set the content type property that subclasses of nsIRequest might offer.
ACString getMIMETypeFromContent( in nsIRequest aRequest, [const,array,size_is(aLength)] in octet aData, in unsigned long aLength );
Parameters
-
aRequest
-
The request where this data came from. May be
null
. -
aData
- Data to check.
-
aLength
- Length of the data.
Return value
The content type.
Example
How to read content from aData.
let charset = "ISO-8859-1"; try { // this pref has been removed, see Bug 910192 charset = Services.prefs.getComplexValue("intl.charset.default", Ci.nsIPrefLocalizedString).data; } catch (e) { } let conv = Cc["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Ci.nsIScriptableUnicodeConverter); conv.charset = charset; try { let str = conv.convertFromByteArray(aData, aLength); if (str.substring(0, 5) == "%PDF-") return "application/pdf"; // we detected a pdf file } catch (e) { // try to get information from aRequest }