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.