Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme - FTP Download

5 réponses
Avatar
ernond_paul
Bonjour,

J'ai fait un petit script me permettant de télécharger des fichier
depuis un serveur FTP dont voici un extrait :


$ftp = Net::FTP->new($host, Debug => 1, Passive=>1);
$ftp->login($login,$password);
$ftp->cwd("/usr/local/apache/monDossier");
@file_list = $ftp->ls();
foreach $fichier (@file_list){
## get...
}

en fait, les fichiers sont téléchargés, mais, les fichiers sont tous
corrompus :

exemple, pour un fichier dump.sql.qz, apres téléchargement avec mon
script, et apres décompression, j'obtient un fichier tel que :

==== extrait :
)t .Table structure fo0d eist* g-oues'c
CREATDATLE * g-oues (og)t .@d or
g)t .@d or
g)t .@d or
g)t .@d or
g)t vt(3) unsignedspectNULL auto_incremSE ,or

==== fin de l'extrait

c'est étrange, car on reconnais bien là un fichier Dump de SQL mais le
fichier à des problemes...

Avez vous une idées à ce probleme ?

Merci de votre aide.

5 réponses

Avatar
Youri
Paul wrote:

(...)
Avez vous une idées à ce probleme ?


Bonjour,
Est-ce que le transfert se fait bien en mode binaire et pas en ASCII ?

--
Youri

Avatar
Paul GABORIT
À (at) 3 May 2004 08:48:44 -0700,
(Paul) écrivait (wrote):
[...]
en fait, les fichiers sont téléchargés, mais, les fichiers sont tous
corrompus :

exemple, pour un fichier dump.sql.qz, apres téléchargement avec mon
script, et apres décompression, j'obtient un fichier tel que :
[...]

c'est étrange, car on reconnais bien là un fichier Dump de SQL mais le
fichier à des problemes...


Si la décompression des fichiers a lieu sans erreur, c'est que le transfert
s'est effectué correctement (un fichier *.gz corrompu ne peut pas se
décompresser correctement). Dans ce cas, vous pouvez soupçonner la création du
fichier côté serveur.

Si la décompression provoque des erreurs, vous devriez regarder du côté de la
méthode 'binary' (du package Net::FTP) avant de transférer des fichiers
binaires.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
ernond_paul
Si la décompression des fichiers a lieu sans erreur, c'est que le transfert
s'est effectué correctement (un fichier *.gz corrompu ne peut pas se
décompresser correctement). Dans ce cas, vous pouvez soupçonner la création du
fichier côté serveur.



si je télécharge les fichier avec un client FTP, je peut alors
décompresser les .gz et ça marche, les dumps sont OK. donc cela vient
de mon script.

je vais me renseigner dans la doc pour le binary.

Avatar
Louis POTY
Avec $ftp->binary(), cela devrait marcher...


"Paul" a écrit dans le message de
news:
Si la décompression des fichiers a lieu sans erreur, c'est que le
transfert


s'est effectué correctement (un fichier *.gz corrompu ne peut pas se
décompresser correctement). Dans ce cas, vous pouvez soupçonner la
création du


fichier côté serveur.



si je télécharge les fichier avec un client FTP, je peut alors
décompresser les .gz et ça marche, les dumps sont OK. donc cela vient
de mon script.

je vais me renseigner dans la doc pour le binary.



Avatar
Denis Joiret
Bonjour,

Transférer en mode ASCII ne change rien si les machine de chaque côté de la
connexion sont du même type (ie: 2 Unix par exemple). Cela va simplement
faire plus de traitement de part et d'autre pour coder et décoder le contenu
du transfert en NVT-ASCII (ie: fin de ligne indiquée par la séquence CR LF).

Ce n'est évidemment pas le cas si les deux systèmes codent de manières
différentes les fins de lignes (ie: Unix et Windows par exemple).

Denis


"Youri" a écrit dans le message de
news:40966adb$0$306$
Paul wrote:

(...)
Avez vous une idées à ce probleme ?


Bonjour,
Est-ce que le transfert se fait bien en mode binaire et pas en ASCII ?

--
Youri