mozilla
Your Search Results

    nsIContentSniffer

    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

    Document Tags and Contributors

    Contributors to this page: Sheppy, fscholz, trevorh, Ben Karel, def00111
    Last updated by: def00111,