OVH Cloud OVH Cloud

Mode binaire de Net::FTP

3 réponses
Avatar
Pascal
Salut,

J'ai un problème en utilisant la librairie Net::FTP pour transférer des
fichiers binaires et textes d'un serveur Unix vers un PC Windows 2000.
J'utilise pour la fontion Net::FTP::Get().
En fait les fichiers semblent bien transférés sauf que des caractères de fin
de ligne 'OD' ont été rajoutés dans les fichiers binaires.
Pourtant j'ai bien pris la précaution d'activer le mode binaire comme en
témoigne le code ci-dessous :

my $opt_s = "myserver";
my $opt_u = "mylogin";
my $opt_p = "mypassword";
my $opt_r = "myremotedir";

$ftp = new Net::FTP ( $opt_s );
die "Failed to connect to server '$opt_s': $!\n" unless $ftp;

die "Failed to login as $opt_u\n" unless $ftp->login($opt_u, $opt_p);

warn "Failed to set binary mode\n" unless $ftp->binary();

print "Cannot change directory to $opt_r\n" unless $ftp->cwd($opt_r);
die "Failed to GET $l\n" unless $ftp->get("file.bin",
"$localdir/file.bin");
$ftp->quit if( defined($ftp) );

Je n'ai aucune idée de comment je pourrais résoudre mon problème. Si vous
avez une idée de l'erreur que je commets ou s'il y a un problème connu dans
cette librairie FTP, ou encore si vous pouvez me conseiller une bibliothèque
FTP qui n'a pas ce problème...

Merci infiniment par avance
François

3 réponses

Avatar
Chris
Pascal wrote:
Salut,

J'ai un problème en utilisant la librairie Net::FTP pour transférer des
fichiers binaires et textes d'un serveur Unix vers un PC Windows 2000.
J'utilise pour la fontion Net::FTP::Get().
En fait les fichiers semblent bien transférés sauf que des caractères de fin
de ligne 'OD' ont été rajoutés dans les fichiers binaires.
Pourtant j'ai bien pris la précaution d'activer le mode binaire comme en
témoigne le code ci-dessous :

my $opt_s = "myserver";
my $opt_u = "mylogin";
my $opt_p = "mypassword";
my $opt_r = "myremotedir";

$ftp = new Net::FTP ( $opt_s );
die "Failed to connect to server '$opt_s': $!n" unless $ftp;

die "Failed to login as $opt_un" unless $ftp->login($opt_u, $opt_p);

warn "Failed to set binary moden" unless $ftp->binary();

print "Cannot change directory to $opt_rn" unless $ftp->cwd($opt_r);
die "Failed to GET $ln" unless $ftp->get("file.bin",
"$localdir/file.bin");
$ftp->quit if( defined($ftp) );

Je n'ai aucune idée de comment je pourrais résoudre mon problème. Si vous
avez une idée de l'erreur que je commets ou s'il y a un problème connu dans
cette librairie FTP, ou encore si vous pouvez me conseiller une bibliothèque
FTP qui n'a pas ce problème...

Merci infiniment par avance
François


Rajoute $ftp->binary pour forcer le mode binaire de ftp sinon depuis

windows par défaut tu es en mode ascii

A+
chris

Avatar
alian
Je n'ai aucune idée de comment je pourrais résoudre mon problème. Si vous
avez une idée de l'erreur que je commets ou s'il y a un problème connu dans
cette librairie FTP, ou encore si vous pouvez me conseiller une bibliothèque
FTP qui n'a pas ce problème...


Sur quel os tourne ce script, sur le windows ? Et quelle version de Perl
utilisez vous ?

Avatar
alian
...

warn "Failed to set binary moden" unless $ftp->binary();



...

Rajoute $ftp->binary pour forcer le mode binaire de ftp sinon depuis
windows par défaut tu es en mode ascii