IdFTP.Get

Signaler
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009
-
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009
-
salut
j'ai un probléme de telechargement de fichier a partir de mon serveur FTP grace au composant indy !
voici ma procedure

procedure TForm1.downClick(Sender: TObject);
var chemin : string;
begin
with savefile do
begin
chemin:=Listview1.Items[ listview1.ItemIndex].Caption;
savefile.FileName:=chemin;
EXECUTE;
end;
IdFTP1.Get(chemin, Savefile.FileName,true);
end;

mais lorsque je clique il creé le fichier sur le disque dur ( vide ) puis il m'affiche un message d'erreur
{par exemple ici j'ai voulu tetechager le fichier FOTO.JPG
---------------------------
Project1
---------------------------
Can't open FOTO.JPG: No such file or directory

---------------------------
OK  
---------------------------
quelqu'un a une idée svp ? merci d'avance

7 réponses

Messages postés
44
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
26 avril 2008

Salut, je pense qu'ici le problème vient de ta variable "chemin" ,  ta procedure get devrait normalement ressembler à ça:

idFTP1.get('FOTO.jpg','c:\FOTO.jpg',true);

Ceci-dit j'ai jamais utiliser un listview donc si c'est bien ce que tu
as tu m'excuseras. Sinon vérifie aussi si tu dois être en mode passif
ou non, si c'est le cas mets la propriété idFTP1.Passive à True.
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

ReSalut
j'ai esseyer sans la variable chemin c a d en indiquant le nom du fichier directement 'FOTO.jpg' et j'ai mis la propriéte  Passive a True mais aucun changement le meme probléme tjr :(
merci
Messages postés
44
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
26 avril 2008

Désolé j'ai fait une petite erreur hier, c'est en fait:


idFTP.Get(CheminDeMaPhoto+'FOTO.jpg','c:\FOTO.jpg',true);


Parcontre si le fichier que tu veux télécharger se trouve dans le
répertoire courant tu n'as pas besoin de préciser  le chemin
d'accés. Autre chose, tu utilises "with .. do" alors que tu n'appelles
que execute et surtout tu assignes le contenu de ta variable chemin à
la propriété Filename de ton savetofile, or ce chemin est celui de ton
fichier sur ton serveur ftp, tu ne dois récuperer que le nom du fchier.
Essayes plutot comme ça:


function nomfile(path:string):string;

var

s:string;

i:integer;

begin

s:='';

i:=length(path);

repeat

dec(i);

until path[i]='/';

repeat

inc(i);

s:=s+path[i];

until i>=length(path);

result:=s;

end;


procedure TForm1.downClick(Sender: TObject);

var chemin : string;

begin

chemin:=Listview1.Items[ listview1.ItemIndex].Caption;

savefile.filename:=nomfile(chemin);

if savefile.execute then

begin

 try

 IdFTP1.Get(chemin, Savefile.FileName,true);

 except

 showmessage('erreur');

 end;

end;

end;

Rions un peu en attendant la mort.
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

Salut
Je telecharge le fichier depuis le reperatoire courant ( et le Tlistview contient les nom des fichier de ce repertoire ! ) donc normalement c'est bien ecrite la procedure :(

chemin:=Listview1.Items[ listview1.ItemIndex].Caption; {Nom du fichier selectionné }
savefile.filename:=(chemin);
if savefile.execute then
begin
 try
 IdFTP1.Get(chemin, Savefile.FileName,true);
 except
 showmessage('Erreur de transfert ');
 end;

Mais sa maffiche toujour un erreur :(
Messages postés
44
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
26 avril 2008

Est-ce que c'est la meme erreur? Sinon essayes aussi de sniffer la session histoire de voir ce que dis le serveur.
Rions un peu en attendant la mort.
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

Salut
Oui c'est la meme erreur toujours j'ai esseyer avec un autre Client FTP creé avec les composants indy et sa marche bien dans le mien je c'est pas pourquoi il fais des erreur ? :(
Merci d'avance
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

Salut
Oui c'est la meme erreur toujours j'ai esseyer avec un autre Client FTP creé avec les composants indy et sa marche bien dans le mien je c'est pas pourquoi il fais des erreur ? :(
Merci d'avance