nsIContentSniffer 编辑
netwerk/base/public/nsIContentSniffer.idl
Scriptable Content sniffer interface. Components implementing this interface can determine a MIME type from a chunk of bytes. Inherits from: nsISupports
Last changed in Gecko 1.9 (Firefox 3) To implement this interface use net-content-sniffers category. See netwerk/build/nsNetCID.h about 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 }
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论