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