PHP,SOAP,WSDL
Résolu/Fermé
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
-
6 août 2009 à 14:50
razul Messages postés 14 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 29 décembre 2013 - 27 juin 2012 à 12:24
razul Messages postés 14 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 29 décembre 2013 - 27 juin 2012 à 12:24
A voir également:
- Base64binary php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Php if plusieurs conditions ✓ - Forum PHP
- Echo image php ✓ - Forum PHP
- Br php ✓ - Forum PHP
13 réponses
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
6 août 2009 à 15:19
6 août 2009 à 15:19
Salut,
tu veux en fait si j'ai bien compris transférer un fichier d'un serveur à un autre c'est ça ?
tu veux en fait si j'ai bien compris transférer un fichier d'un serveur à un autre c'est ça ?
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
69
6 août 2009 à 15:24
6 août 2009 à 15:24
en fait c'est un web service qui pourra etre mis sur n'importe quel site web.
genre tu mets sur ton site le client soap et ça envoie le fichier sur le serveur et ça l'enregistre... Autant le client/serveur soap marche bien mais passer des fichiers je trouve pas d'exemple ou de tuto sur le net
genre tu mets sur ton site le client soap et ça envoie le fichier sur le serveur et ça l'enregistre... Autant le client/serveur soap marche bien mais passer des fichiers je trouve pas d'exemple ou de tuto sur le net
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
6 août 2009 à 15:26
6 août 2009 à 15:26
Autant le client/serveur soap marche bien mais passer des fichiers je trouve pas d'exemple ou de tuto sur le net
Merci mais j'ai bien compris et je sais ce qu'est un webservice en SOAP.
Par contre tu dis bien que ton problème c'est un transfert de fichier non ou je comprend rien à ce que t'écris ?
Merci mais j'ai bien compris et je sais ce qu'est un webservice en SOAP.
Par contre tu dis bien que ton problème c'est un transfert de fichier non ou je comprend rien à ce que t'écris ?
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
69
6 août 2009 à 15:30
6 août 2009 à 15:30
ouai c'est un transfert de fichier.
mon but c'est avec qq chose comme ça :
$fichier = $_FILES['fichier'];
$response = $client->__soapCall('envoie',array('fichier'=> $fichier));
avec ma méthode envoie($fichier) sur le serveur je récupère ce fichier pour l'enregistrer
mon but c'est avec qq chose comme ça :
$fichier = $_FILES['fichier'];
$response = $client->__soapCall('envoie',array('fichier'=> $fichier));
avec ma méthode envoie($fichier) sur le serveur je récupère ce fichier pour l'enregistrer
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
6 août 2009 à 15:37
6 août 2009 à 15:37
Oki c'est donc un tranfert de fichier:)
Pour moi il faut que tu coté client qui reçoit $_FILES à travers un formulaire, il faut stocker le fichier dans un répertoire temporaire, puis ensuite tu ouvres une connection ftp vers le serveur principal et tu transfert le fichier via FTP : https://www.php.net/manual/fr/book.ftp.php , puis tu supprimes le fichier dans le repertoire temporaire si ça a réussi sinon t'avises :)
Voilà moi c'est comme ça que je conçois le problème.
Pour moi il faut que tu coté client qui reçoit $_FILES à travers un formulaire, il faut stocker le fichier dans un répertoire temporaire, puis ensuite tu ouvres une connection ftp vers le serveur principal et tu transfert le fichier via FTP : https://www.php.net/manual/fr/book.ftp.php , puis tu supprimes le fichier dans le repertoire temporaire si ça a réussi sinon t'avises :)
Voilà moi c'est comme ça que je conçois le problème.
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
69
6 août 2009 à 15:50
6 août 2009 à 15:50
ouai voila, il me faut du WS, puis je peux pas souiller les pc clients en stockant d'abord le fichier chez eux.
Je sais que c'est possible en silverlight + php y a moyen avec de l'encodage en base 64 et pour juste php ça existe aussi. j'arrive à encoder le bordel mais le décoder et le save non...
Je sais que c'est possible en silverlight + php y a moyen avec de l'encodage en base 64 et pour juste php ça existe aussi. j'arrive à encoder le bordel mais le décoder et le save non...
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
6 août 2009 à 16:18
6 août 2009 à 16:18
je peux pas souiller les pc clients en stockant d'abord le fichier chez eux.
? ? ?
Heuu moi je parle de communication de serveur à serveur y a pas de poste client, puis forcer un client...
Je comprends pas tout la, mais toi t'as l'air donc bon courage :)
P.S : silverlight beurk, Flex ouaiis :)
? ? ?
Heuu moi je parle de communication de serveur à serveur y a pas de poste client, puis forcer un client...
Je comprends pas tout la, mais toi t'as l'air donc bon courage :)
P.S : silverlight beurk, Flex ouaiis :)
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
69
6 août 2009 à 16:36
6 août 2009 à 16:36
en fait ce sera mis sur des sites web (c'est eux que j'appelle client). J'ai peut être trouvé un moyen mais il me manque qq chose. J'aimerais lire le contenu d'un $_files pour faire qq chose comme ça :
$fichier = $_FILES['fichier'];
$fcontent = fread ($fichier['contenu'], filesize($cv));
$cv64 = base64_encode($fcontent);
sauf que la bien sur ça marche pas, fread lit des fichiers ouvert mais tout est distant c'est pas possible
$fichier = $_FILES['fichier'];
$fcontent = fread ($fichier['contenu'], filesize($cv));
$cv64 = base64_encode($fcontent);
sauf que la bien sur ça marche pas, fread lit des fichiers ouvert mais tout est distant c'est pas possible
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
7 août 2009 à 11:11
7 août 2009 à 11:11
Bonjour,
Je peux t'aider sur la conception de la chose d'un point de vue théorique mais pas concrète.
J'ai déjà fait des webservices avec échange de fichier dans les requêtes SOAP en Java, mais pas en PHP.
Cela dit le principe doit être le même, deux cas :
1) Envoi de client à serveur :
- Le client lit le fichier, récupère le contenu, envoi sous forme de DataHandler le contenu du fichier dans la requète SOAP directement.
- Le serveur réceptionne la requête SOAP, regarde s'il y a des choses dans les "attachments", si oui récupère le contenu et... la suite c'est selon ce que doit faire ton web service, le mieux se contentait de stocker le fichier reçus, donc enregistrement sur fichier coté serveur.
2) Envoi du serveur au client :
- Exactement la même chose mais coté serveur.
Conclusion, de n'importe quel coté, il faut d'abord lire le fichier, récupérer son contenu et l'envoyé en tant qu'attachement à ta requète SOAP.
Normalement le fait d'inclure des attachements à ta requète SOAP n'impacte en rien ton WSDL. (Du moins en Java, mais j'imagine que c'est géré de la même manière pour le PHP puisque SOAP est comme un composant / une technologie indépendante du langage qui l'utilise).
Reste donc à trouver de la doc PHP sur comment ajouter des attachements à une requête SOAP en PHP.
Si je trouve je te fais signe.
Je peux t'aider sur la conception de la chose d'un point de vue théorique mais pas concrète.
J'ai déjà fait des webservices avec échange de fichier dans les requêtes SOAP en Java, mais pas en PHP.
Cela dit le principe doit être le même, deux cas :
1) Envoi de client à serveur :
- Le client lit le fichier, récupère le contenu, envoi sous forme de DataHandler le contenu du fichier dans la requète SOAP directement.
- Le serveur réceptionne la requête SOAP, regarde s'il y a des choses dans les "attachments", si oui récupère le contenu et... la suite c'est selon ce que doit faire ton web service, le mieux se contentait de stocker le fichier reçus, donc enregistrement sur fichier coté serveur.
2) Envoi du serveur au client :
- Exactement la même chose mais coté serveur.
Conclusion, de n'importe quel coté, il faut d'abord lire le fichier, récupérer son contenu et l'envoyé en tant qu'attachement à ta requète SOAP.
Normalement le fait d'inclure des attachements à ta requète SOAP n'impacte en rien ton WSDL. (Du moins en Java, mais j'imagine que c'est géré de la même manière pour le PHP puisque SOAP est comme un composant / une technologie indépendante du langage qui l'utilise).
Reste donc à trouver de la doc PHP sur comment ajouter des attachements à une requête SOAP en PHP.
Si je trouve je te fais signe.
jsaispas
Messages postés
118
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
24 août 2009
69
10 août 2009 à 11:29
10 août 2009 à 11:29
c'est bon en fait j'ai résolu mon problème vendredi déjà.
j'ai juste fait un truc que j'aime pas faire, j'ai upload le fichier sur le client (personne avec le soap-client) je l'ouvre je le lis, j'envoi les données en base64, et coté serveur je réceptionne, je créer un fichier vide puis j'insère les données et bien entendu je supprime le fichier de chez le client. Je peux passer tout type de format sans soucis.
faut juste pensé à mettre
<wsdl:part name="file_content" type="xsd:base64Binary" />
dans le wsdl pour qu'il sache que le paramètre contienne ça.
j'ai juste fait un truc que j'aime pas faire, j'ai upload le fichier sur le client (personne avec le soap-client) je l'ouvre je le lis, j'envoi les données en base64, et coté serveur je réceptionne, je créer un fichier vide puis j'insère les données et bien entendu je supprime le fichier de chez le client. Je peux passer tout type de format sans soucis.
faut juste pensé à mettre
<wsdl:part name="file_content" type="xsd:base64Binary" />
dans le wsdl pour qu'il sache que le paramètre contienne ça.
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
11 août 2009 à 18:00
11 août 2009 à 18:00
On y vient finalement au stockage temporaire de la photo sur le serveur client... ;)
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 août 2009 à 11:32
10 août 2009 à 11:32
Effectivement c'est une solution.
Juste une petite remarque sur "<wsdl:part name="file_content" type="xsd:base64Binary" />"
C'est utile surtout lorsque tu souhaites passer des fichiers binaires. Pour ce qui est de fichiers texte ou xml par exemple, tu n'en as pas besoin. Tout dépends aussi de la manière dont tu lis les informations de ton fichier pour les transmettre en paramètre, si tu les lis en binaires et non en texte, effectivement tu as tout intérêt à indiquer la ligne que tu as ajouté.
Juste une petite remarque sur "<wsdl:part name="file_content" type="xsd:base64Binary" />"
C'est utile surtout lorsque tu souhaites passer des fichiers binaires. Pour ce qui est de fichiers texte ou xml par exemple, tu n'en as pas besoin. Tout dépends aussi de la manière dont tu lis les informations de ton fichier pour les transmettre en paramètre, si tu les lis en binaires et non en texte, effectivement tu as tout intérêt à indiquer la ligne que tu as ajouté.
razul
Messages postés
14
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
29 décembre 2013
1
27 juin 2012 à 12:24
27 juin 2012 à 12:24
envoi de fichiers en web service php : http://ww16.biclim.com/index.html?sub1=20201208-0528-2257-bbb1-3cc04d584d66