uploader en passive mode sur un ftp - Perl - Programmation
Marsh Posté le 05-01-2005 à 22:41:43
sur le doc de Net::FTP
pasv ()
Tell the server to go into passive mode. Returns the text that represents the port on which the server is listening, this text is in a suitable form to sent to another ftp server using the port method.
Marsh Posté le 06-01-2005 à 08:55:58
Vi je sais mais cette methode te renvoie un port.
Mais le probleme viens juste apres.
cad comment le reassigner a ma connection en cours
merci de ton aide
Marsh Posté le 06-01-2005 à 09:03:12
hummm essaie comme ca :
Code :
|
Marsh Posté le 06-01-2005 à 10:16:27
Je te remercie de repondre aussi vite.
G essaye cette teknique qui na helas pas marche.
Je pense quil faut etablir une nouvelle connexion en utilisant le port renvoye par le serveur grace au $ftp->psv().
G essaye douvrir une nouvelle connexion sur ce port mais sans resultat.
Il faudrait bouger la connexion etablie sur ce nouveau port pour transferer et c la ou je ni arrive pas.
Marsh Posté le 09-01-2005 à 18:17:18
$ftp1->pasv() renvoie le port utilise en passive
et s'occupe tout seul de le passer en mode passif.
on fini par
&clear_error("can't store" ) unless $ftp1->put($chemin.".zip" );
et ca rulez
Merci de votre aide
Marsh Posté le 05-01-2005 à 21:25:16
Bonjour a tous,
jessaye de faire un programme qui se connecte a un ftp et lui upload
un fichier.
Quand je suis ds le reseau du serveur aucun probleme mon programme fonctionne.
Quand je tente depuis lexterieur mon programme si connecte puis plus rien.
Quand je fait la meme manip avec un client graphique ca marche mais je remarque
R] 200 Type set to A.
[R] PASV
[R] 227 Entering Passive Mode (,78,32)
[R] Opening data connection IP: 82.123.161.13 PORT: 20000
[R] LIST -al
[R] 150 Opening ASCII mode data connection for /bin/ls (167 bytes).
[R] 226 Transfer successful.
Voici le code de mon client :
&clear_error("Error connecting ftp1" ) unless my $ftp1 = Net::FTP->new($ftp_address, Passive => 1, Timeout => 60,Port =>$ftp_port);
&clear_error("Authentification fail" ) unless $ftp1->login($ftp_user, $ftp_pass);
&clear_error("binary mode error" ) unless$ftp1->binary();
#&clear_error("psv port recuperation" ) unless my $psv = $ftp1->pasv;
#print "le port recuperer est le ".$psv;
#&clear_error("error of sending port" ) unless $ftp1->port($pasv);
&clear_error("can't store" ) unless $ftp1->put($chemin.".zip" );
$ftp1->close();
$ftp1->quit();
print "FTP transfert OK\n";
Je pense que la solution viendrait darriver a etablir une connexion en passive mode pour le transfert mais je ni arrive pas du tout.
Si quelqun peut maider ca serais super sympa