Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je travaille actuellement avec une version 9 de PowerBuilder et j'aimerais faire un client ftp en natif.
Est-ce possible?
Si non existe-t-il une version qui le permet?
Merci
Hors ligne
hello,
en fouillant bien sur le site, tu n'as rien trouvé qui pourrait correspondre à tes attentes ?
A++
Hors ligne
Bonjour,
J'ai bien vu des examples d'utilisation de batch mais il faudrait que je puisse gérer le port de travail donc pas d'utilisation du ftp.exe de windows...
Hors ligne
chez le client actuel, on utilise ce sdk
http://pbadonf.fr/forum/viewtopic.php?id=103
qui fonctionne tres bien...
on effectue une connection FTP via une adresse IP... ect...
Hors ligne
Bonjour,
super le code.
Avez vous des infos pour du FTP en multi-thread ?
Actuellement on passe par l'intermédiaire d'un module externe
en Delphi, dont on a pas les sources , ce qui ne me plait pas trop.
Hors ligne
Merci pour le module,
Il semble super. Pouvez-vous m'indiquer où changer le n° de port, en effet je n'utilise pas le port 21 mais le n° 10042?
Merci d'avence.
Hors ligne
Exemple de script d'un écran "w_ftp"
merci à l'ami christian report pour ce bout de code
//Déclaration d'une variable d'instance FTP u_ftp iu_ftp //Déclaration variables locales String ls_cible //nom du fichier cible avec chemin String ls_source //nom du fichier source avec chemin String ls_ip_serveur_ftp //adresse ip du serveur ftp String ls_user //utilisateur ftp String ls_pwd //mot de passe ftp Long ll_ret //code retour des foncions ftp //Definition du serveur Ftp iu_ftp.connexion.remote = ls_ip_serveur_ftp iu_ftp.connexion.id = ls_user iu_ftp.connexion.password = ls_pwd //connexion au serveur Ftp ll_ret = iu_ftp.uf_openconnexion(iu_ftp.connexion) if ll_ret <> 0 then MessageBox('Serveur d~'envoi fax', 'Le serveur Ftp n~'est pas accessible ou mal défini, ~n' + 'Merci de contacter votre administrateur système', StopSign!) return end if //Deposer un fichier sur le serveur Ftp ll_ret = iu_ftp.uf_put( ls_cible, ls_source, w_ftp ) if ll_ret <> 0 then MessageBox('Serveur d~'envoi fax', 'Le serveur Ftp n~'est pas accessible ou mal défini, ~n' + 'Merci de contacter votre administrateur système', StopSign!) return end if //fermer la connexion ftp ll_ret = iu_ftp.uf_closeconnexion(iu_ftp.connexion) if ll_ret <> 0 then MessageBox('Serveur d~'envoi fax', 'Le serveur Ftp n~'est pas accessible ou mal défini, ~n' + 'Merci de contacter votre administrateur système', StopSign!) return end if
Hors ligne
pick ouic a écrit:
Exemple de script d'un écran "w_ftp"
Salut, le code ne correspond pas avec l'objet u_ftp des sources de l'autre post ?
Hors ligne
c'est un exemple d'appel...
on utilise l'objet ftp et les dlls...
on a juste adapté...mais sinon, le fond reste le meme.
Hors ligne
pick ouic a écrit:
Code: pb
//Definition du serveur Ftp iu_ftp.connexion.remote = ls_ip_serveur_ftp iu_ftp.connexion.id = ls_user iu_ftp.connexion.password = ls_pwd //connexion au serveur Ftp ll_ret = iu_ftp.uf_openconnexion(iu_ftp.connexion) //Deposer un fichier sur le serveur Ftp ll_ret = iu_ftp.uf_put( ls_cible, ls_source, w_ftp ) //fermer la connexion ftp ll_ret = iu_ftp.uf_closeconnexion(iu_ftp.connexion)
beaucoup adapté alors...
dans l'objet u_ftp y'a pas de variable d'instance connexion ? et les méthodes ne sont pas les mêmes (uf_open, uf_put, uf_close...)
Hors ligne
faut croire qu'un petit rien ne peut t'echapper ?
Hors ligne
pick ouic a écrit:
faut croire qu'un petit rien ne peut t'echapper ?
c'est surtout que j'ai récupéré les sources et le code pour utiliser PB + FTP, grande 1ère...
Hors ligne
Bonjour,
J'ai résolu mon problème de la façon suivante :
Génération d'un fichier commande : ftp -s:"FtpFichiers.txt" > "C:\Sauvegarde\LOG\trace.log"
Contenu de fichier texte associé
Open serveur n° de port particulier ex : open serveur.local.travail.fr 10023
Compte utilisateur
mot de passe
ascii
put "C:\FTP\Fichier"
bye
En c:\FTP se trouve mon fichier à transférer
Fonction powerbuilder pour lancer le fichier commande :
CONSTANT integer MAXIMIZED = 3 CONSTANT integer MINIMIZED = 2 CONSTANT integer NORMAL = 1 CONSTANT boolean WAIT = TRUE CONSTANT boolean NOWAIT = FALSE wsh = CREATE OleObject li_ret = wsh.ConnectToNewObject( "WScript.Shell" ) li_ret = wsh.Run("~"" + ls_fichier_cmd + "~"" , NORMAL, WAIT) destroy(wsh)
Remarque : dans ls_fichier_cmd j'ai le chemin complet du fichier .cmd
Tout cela fonctionne parfaitement.
Merci pour tout
Hors ligne
cantin_jl a écrit:
Bonjour,
J'ai résolu mon problème de la façon suivante :
Génération d'un fichier commande : ftp -s:"FtpFichiers.txt" > "C:\Sauvegarde\LOG\trace.log"
C'est une solution.
Dans mon cas de figure, je préférerais ne pas utiliser la commande FTP de l'OS... D'où l'utilisation de u_ftp.
Au passage, tu n'utilises pas la fonction PB système Run(), tu préfères l'OLE WScript.Shell ?
Hors ligne
Bonjour,
J'ai besoin de faire du ftp avec PB. J'essaye d'utiliser les objets de Pick pour faire du ftp avec PB, et après avoir récupérer ces objets et les avoir migrer dans la bonne version, je n'arrive pas à mettre sa solution en test.
Quelqu'un a-t-il utilisé cette solution ou une autre solution.
L'idée est de faire du ftp avec pb en batch pour des fichiers qui n'auront jamais le même nom, je ne peux donc pas mettre le nom en dur dans un fichier.
Une idée ??
Hors ligne
je retrouve le code et je te le passe !
Hors ligne
j'attends avec impatience.
Hors ligne
voici qq bouts de codes en utilisant l'objet n_wininet (en autoinstantiate)
n_wininet inv_ftp // CONNEXION ----------------------------------- This.inv_ftp.of_internetopen( ) ls_result = This.inv_ftp.of_ftp_InternetConnect( This.is_ftp_host, & This.is_ftp_user, This.is_ftp_password ) // not ok If Len( ls_result ) > 0 Then MessageBox( 'Connexion FTP impossible', ls_result ) // PUT ----------------------------------- ls_result = This.inv_ftp.of_Ftp_PutFile( as_source, as_target, False ) // not ok If Len( ls_result ) > 0 Then ... // DECONNEXION ----------------------------------- ls_result = This.inv_ftp.of_Disconnect_Session( )
Hors ligne
Merci pour tout, je n'ai plus qu'a tester tout cela, je vous tiens au courant.
Hors ligne
tu as reussi?
Hors ligne
En ce moment c'est le mois d'aout, et je fais le backup de plein de personne. du coup j'ai pas encore eu le temps de m'occuper de mes problèmes, alors j'ai mis ça de coté pour le moment, et ça va bientot revenir à l'ordre du jour.
Je vous tiens au courant.
Hors ligne
Eureka, j'ai pu me remettre sur le sujet.
Donc, j'arrive bien à me connecter , à changer de répertoire, à déposer des fichiers et à me déconnecter.
Dans mon appli, j'aurais plusieurs fichiers à déplacer, existe-t-il une fonction du style FtpPutFile qui me permettre de déposer plusieurs fichiers d'un seul coup ?
J'ai enlevé momentanément le mode Resolu...
Hors ligne
Pas à ma connaissance tu dois boucler sur tout le contenu du répertoire..
Hors ligne
thezerg a écrit:
Pas à ma connaissance tu dois boucler sur tout le contenu du répertoire..
dommage, merci quand même
Hors ligne
Wazou, ton batch fonctionne bien? Car il semble que de notre côté le batch perde la connexion FTP de temps à autre, je voulais savoir si tu avais le même soucis..
Hors ligne