Witam. Mam procedurę, której celem jest połączenie się z ftp z danymi podanymi przeze mnie w kodzie, pobranie pliku jego modyfikacja i wgranie z powrotem na ftp.
Łączy się bez problemu z ftp jednak przy wywoływaniu GET i PUT zwraca mi błąd odpowiednio "Destination file already exists" i "I won't open a connection to 10.144.7.207 (only to 77.236.0.202)". Dlaczego tak się dzieje, co zrobić aby to działało? ;-( Ratujcie :-(
bo się pewnie źle łączysz. zarzuć prockę jak to robisz to się zobaczy.
Gladiatus napisał(a)
Witam. Mam procedurę, której celem jest połączenie się z ftp z danymi podanymi przeze mnie w kodzie, pobranie pliku jego modyfikacja i wgranie z powrotem na ftp.
Łączy się bez problemu z ftp jednak przy wywoływaniu GET i PUT zwraca mi błąd odpowiednio "Destination file already exists" i "I won't open a connection to 10.144.7.207 (only to 77.236.0.202)". Dlaczego tak się dzieje, co zrobić aby to działało? ;-( Ratujcie :-(
Ja na komponencie ustawilem dane do logowania przy pobieraniu robie to tak:
var
stream_plik: TMemoryStream;
begin
FTP.Get('nazwa.rozszerzenie',stream_plik);
DeleteFile('nazwa.rozszerzenie');
stream_plik.SaveToFile('nazwa.rozszerzenie');
stream_plik.Free;
end;
Destination file already exists czasami wyskakuje gdy caly plik sie nie pobierze dlatego ja do tego uzywam memorystream. A co do polaczenia to roznie mozliwe ze cos masz nie tak z polaczeniem najlepiej postaw sobie serwer ftp na kompie (polecam prosty w obsludze filezilla) i przetestuj na tym pozniej sprobuj na swoim ftp. W moim przypadku musialem ustawic tryb pasywny oraz transfertype na ftbinary gdyz byl problem z pobraniem wiekszych plikow. Pokombinuj i wrzuc kod ktory napisales.
Jestes wielki :) działa. Zrobiłem po Twojemu i działać - dzięki serdeczne :)
var
stream_plik: TMemoryStream;
begin
if idFTP.Connected then idFTP.Disconnect;
idFTP.Passive:=False;
idFTP.Connect();
stream_plik:=TMemoryStream.Create;
idFTP.Get('lista.txt',stream_plik);
idFTP.Delete('lista.txt');
stream_plik.SaveToFile(ExtractFilePath(Application.ExeName)+'data/lista.txt');
stream_plik.Free;
IdFTP.Disconnect;
end;