function uploadUploadFilePlugin() {
switch(UploadFilePluginMode) {
case 'Knowledge':
break;
case 'Aow':
default:
UploadFilePluginFilename = document.getElementById('fFilename').value;
UploadFilePluginMytext = document.getElementById('sFileDescription').value;
UploadFilePluginAccessCheckboxes = document.getElementById('hidchkAowLevelID').value;
break;
}
// request local file read permission
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect" );
} catch (e) {
alert("Vous n'avez pas la permission de lire le fichier!" );
}
// open the local file
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( UploadFilePluginFilename );
stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance(Components.interfaces.nsIFileInputStream);
stream.init(file, 0x01, 00004, null);
var bstream = Components.classes["@mozilla.org/network/buffered-input-stream;1"]
.getService();
bstream.QueryInterface(Components.interfaces.nsIBufferedInputStream);
bstream.init(stream, 1000);
bstream.QueryInterface(Components.interfaces.nsIInputStream);
UploadFilePluginBinary = Components.classes["@mozilla.org/binaryinputstream;1"]
.createInstance(Components.interfaces.nsIBinaryInputStream);
UploadFilePluginBinary.setInputStream (stream);
// start AJAX file upload in 1 second
window.setTimeout("ajax_uploadUploadFilePlugin()", 1000);
}
function ajax_uploadUploadFilePlugin() {
// request more permissions
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect" );
} catch (e) {
alert("Vous n'avez pas la permission de lire le fichier!" );
}
UploadFilePluginHttp_request = false;
if (window.XMLHttpRequest) {
UploadFilePluginHttp_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
UploadFilePluginHttp_request = new ActiveXObject('Microsoft.XMLHTTP');
} else {
alert('Votre navigateur ne supporte pas XMLHttpRequest!');
return false;
}
// prepare the MIME POST data
var boundaryString = 'capitano';
var boundary = '--' + boundaryString;
var MyForm;
var requestbody = '';
var url = '';
switch(UploadFilePluginMode) {
case 'Knowledge':
break;
case 'Aow':
default:
requestbody = boundary + '\n'
+ 'Content-Disposition: form-data; name="sFileDescription"' + '\n'
+ '\n'
+ UploadFilePluginMytext + '\n'
+ '\n'
+ boundary + '\n'
+ 'Content-Disposition: form-data; name="hidchkAowLevelID"' + '\n'
+ '\n'
+ UploadFilePluginAccessCheckboxes
+ '\n'
+ boundary + '\n'
+ 'Content-Disposition: form-data; name="fFilename"; filename="'
+ UploadFilePluginFilename + '"' + '\n'
+ 'Content-Type: application/octet-stream' + '\n'
+ '\n'
+ escape(UploadFilePluginBinary.readBytes(UploadFilePluginBinary.available()))
+ '\n'
+ boundary;
MyForm = $('AowFiles').getElementsByTagName('form')[0];
url = MyForm.action;
break;
}
// do the AJAX request
UploadFilePluginHttp_request.onreadystatechange = requestDoneUploadFilePlugin;
UploadFilePluginHttp_request.open('POST', url, true);
UploadFilePluginHttp_request.setRequestHeader("Content-type", "multipart/form-data; \
boundary=\"" + boundaryString + "\"" );
UploadFilePluginHttp_request.setRequestHeader("Connection", "close" );
UploadFilePluginHttp_request.setRequestHeader("Content-length", requestbody.length);
UploadFilePluginHttp_request.send(requestbody);
}
function requestDoneUploadFilePlugin()
{
if (UploadFilePluginHttp_request.readyState == 4 && UploadFilePluginHttp_request.status == 200) {
switch(UploadFilePluginMode) {
case 'Knowledge':
break;
case 'Aow':
default:
if (UploadFilePluginHttp_request.responseText.indexOf('ErrorMsg', 0) != -1) {
alert("Le fichier n'a pu être attaché à la demande!" );
} else {
var MyForm = $('AowFiles').getElementsByTagName('form')[0];
MyForm.reset();
var UploadFilePluginAreaListFiles = $('AowFilesList').getElementsBySelector('td.AowFilesFrame')[0].getElementsByTagName('td')[0];
UploadFilePluginAreaListFiles.innerHTML = UploadFilePluginHttp_request.responseText;
}
break;
}
}
}