Envoyé par : AurelBUD
Date : 22/12/2005 14:52
Bonjour, pour envoyer mes messages vers mon serveur j'utilise la fonction suivante :
function ExecuteSOAP(methode, parametres)
{
//Creation d'un objet SOAPCall
var appel = new SOAPCall();
//Fonction de gestion web service
appel.transportURI = "http://192.168.1.2/clients/SOAP.php";
//Arguments du webservice
var params = new Array();
var i = 0;
for (a in parametres)
params[i++] = new SOAPParameter(parametres[a], a);
//Creation d'un message SOAP
appel.encode(0,methode,null,0,null,params.length,params);
//On autorise l'acces au serveur
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
//On appele la fonction
var result = appel.invoke();
if (result.fault)
{ //nsISoapFault
alert("Erreur SOAP : "+result.fault.faultCode+" ; "+result.fault.faultString+"\n");
//ajouterErreur(gStringBundle.getFormattedString("erreurSoap", new Array(String(result.fault.faultCode), String(result.fault.faultString))));
return null;
}
else
{
//On traite le resultat
var num = new Object();
var r = result.getParameters(false,num);
if(r[0] == null) return null;
return r[0].value;
}
}
Et je voulais savoir ce qu'il fallait que je modifie pour pouvoir passer un fichier en parametre.
Merci d'avance pour vos réponses
Envoyé par : jonathan
Date : 25/12/2005 22:14
Le plus simple à mon avis est d'encoder ton fichier en base64, parfaitement adapté à l'envoi de fichiers en mode texte (comme au milieu du XML). Récupère le contenu du fichier grâce à un composant XPCOM (utilise la JSLib pour aller vite ou si tu as la conscience professionnelle, chercher sur la Knowledge Base de Mozillazine, il y a des exemples de code), encode le via btoa (binary to ascii), et envoie comme simple chaîne de caractères. Côté PHP, tu pourras très simplement décoder le tout avec base64_decode et file_put_contents. Voilà il y a certainement d'autres méthodes mais celle-ci me paraît la plus simple
.
Envoyé par : AurelBUD
Date : 16/01/2006 15:09
Je n'arrive pas à trouver dans la JSLib la fonction qui récupère le contenu du fichier. Peux tu me donner plus de détails sur ces fonctions ??? Merci d'avance
Envoyé par : AurelBUD
Date : 16/01/2006 18:09
pour ouvrir une boite de dialogue de fichier, j'utilise :
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, "Sélectionner un fichier", nsIFilePicker.modeOpen);
var res = fp.show();
if (res == nsIFilePicker.returnOK)
{
img_src = fp.file.target;
}
Est-ce que avec "fp.file" on peut obtenir le contenu du fichier sous forme d'une string ? Y'a-t-il une fonction associée à ce fp.file ? Pour pouvoir l'envoyer via SOAP après ...
Envoyé par : AurelBUD
Date : 18/01/2006 12:42
C'est bon j'ai trouvé !!! Je donne le code pour lire un fichier binaire si ça peut interesser des gens :
function read(filepath) {
try {
//On autorise le navigateur a ouvrir des fichiers locaux
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to read file was denied.");
}
//On ouvre le fichier
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);
//On lit le fichier en mode binaire
var sis = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
sis.setInputStream( is );
var output = sis.readBytes( sis.available() );
//On retourne le contenu du fichier
return output;
} Envoyé par : chBok
Date : 18/01/2006 23:04
Merci, voilà un bout de code qui va sûrement se retrouver dans la section du wiki des exemples :) - merci
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.