A voir également:
- PHP,SOAP,WSDL
- [PHP] SOAP / WSDL noob ✓ - Forum - PHP
- PHP,SOAP,WSDL ✓ - Forum - PHP
- Soap wsdl - Articles
- PHP & SOAP ✓ - Forum - PHP
- PHP soap/client ✓ - 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
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
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
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
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
Zep3k!GnO
- Messages postés
- 2025
- Date d'inscription
- jeudi 22 septembre 2005
- Statut
- Membre
- Dernière intervention
- 18 novembre 2015
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
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
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
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
- 4088
- Date d'inscription
- jeudi 7 avril 2005
- Statut
- Contributeur
- Dernière intervention
- 30 septembre 2013
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
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.
kij_82
- Messages postés
- 4088
- Date d'inscription
- jeudi 7 avril 2005
- Statut
- Contributeur
- Dernière intervention
- 30 septembre 2013
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
envoi de fichiers en web service php : http://ww16.biclim.com/index.html?sub1=20201208-0528-2257-bbb1-3cc04d584d66