Hi, I am fairly new to XUL and am trying to read in a binary file. I
have cobbled some code together from various sources but i can not get
it to read anything.

// path is the filename
function saveFile(path) 
{
  
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                        
var ioService = Components.classes[
        "@mozilla.org/network/io-service;1"
        ].getService(Components.interfaces.nsIIOService);

// get file to upload
var fileurl = ioService.newURI("file://"+path, null, null);
fileurl = fileurl.QueryInterface(Components.interfaces.nsIFileURL);
var fileHandle = fileurl.file;

// open up connection to jsp
remoteUrl = ioService.newURI(serverAddress+"showFile.jsp", null,
null);

//send file to connection                  
var channel = 
ioService.newChannelFromURI(remoteUrl).QueryInterface(Components.interfaces.nsIHttpChannel);

channel.requestMethod = 'POST'; 

var upload =  channel.QueryInterface(Components.interfaces.nsIUploadChannel);

var inputStream = Components.classes
                ["@mozilla.org/network/file-input-stream;1"].createInstance
                (Components.interfaces.nsIFileInputStream);

inputStream.init(fileHandle, 0x01, 00004, null);

upload.setUploadStream(inputStream, null, -1);

var FileListener  = {
    onDataAvailable: function (channel, ctxt, inStr, sourceOffset,
count) {
        channel = channel.QueryInterface(Components.interfaces.nsIHttpChannel);
        alert("responsestring" + channel.responseString);
        return;
    },
    onStartRequest: function (channel, ctxt) {
        alert("request");
        return;
    },
    onStopRequest: function (channel, ctxt, status) {
        alert("stoprequest");
        return;
    }
};
  
channel.asyncOpen(FileListener, null);
}


'onStartRequest' and 'onStopRequest' are called but 'onDataAvailable'
is not.

Any advice would be appreciated.
Thanks

Reply via email to