After some modifications, now the code is working for uploading file with
the combination of XMLHttpRequest() and XPCOM FilePicker component.
I am uploading XML file so I ententially written this code for XML file
upload.
(Others can modify it)
function uploadFile()
{
try
{
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp =
Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker
);
fp.init(window, "Upload file : Backoffice server",
nsIFilePicker.modeOpen );
fp.appendFilters(nsIFilePicker.filterXML);
var res=fp.show();
var fileContent;
var fileName;
if (res==nsIFilePicker.returnOK){
fileContent = readFile(fp.file.path);
var parser = new DOMParser();
var fileDom = parser.parseFromString(fileContent, "text/xml");
}
//
if (fileContent)
{
var httpRequest = new XMLHttpRequest();
httpRequest.open("POST","http://localhost/upload.php"), false, null,
null);
httpRequest.setRequestHeader("Content-Type","text/xml");
httpRequest.send(fileDom);
alert("\n Responce: " + httpRequest.responseText);
}
}
catch (ex)
{
dump("\n uploadFile => " + ex);
}
}
function readFile(filePath)
{
try
{
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to read file was denied.");
}
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( filePath );
if ( file.exists() == false ) {
alert("File does not exist");
}
var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance( Components.interfaces.nsIFileInputStream );
is.init( file,0x01, 00004, null);
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
.createInstance( Components.interfaces.nsIScriptableInputStream );
sis.init( is );
var output = sis.read( sis.available() );
file://dump("\n output: " + output);
return output;
}
catch (ex)
{
dump("\n readFile => " + ex);
}
}
Regards,
Sandesh
--
SEE: http://in.geocities.com/skexz
_______________________________________________
Mozilla-xpcom mailing list
[EMAIL PROTECTED]
http://mail.mozilla.org/listinfo/mozilla-xpcom