Hallo erst mal!
Ich habe mich ebenfalls in den letzten Tagen ein wenig mit Download und Upload von Dateien befasst. Von Anfang an war ich mir sicher, dass ich das Ganze mit
FTP versuchen wollte.
Am Anfang habe ich die
Unit 'InetTools' in mein Projekt eingebunden, welche ich in einem Beispiel im Inetnet gefunden habe. Später, als ich dann z.B. eine ProgressBar einbinden wollte, hatte ich den Salat: Mit der genannten
Unit 'InetTools' wusste niemand, wie das Funktionieren soll, da niemand diese
Unit kannte. Also wurden mir hier auf diesem Forum die Indys empfohlen, welche bei Delphi mitgeliefert werden.
Hier ein Code-Beispiel, welches nach klick von Button1, sich mit einem
FTP-Server verbindet und eine Datei auf den Server läd. Danach wird automatisch wieder disconnected.
[Die
Unit idFtp muss eingebunden werden]
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdFtp, StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
ftp: TidFtp;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ftp:=TidFtp.Create;
ftp.Host := '
people-ftp.freenet.de';
ftp.Username := '
benutzername';
ftp.Password := '
passwort';
ftp.Passive := true;
ftp.Connect;
ftp.Put('
test.exe', '
test.exe', false);
ftp.Disconnect;
ftp.Quit;
end;
end.
Durch dieses Programm habe ich auch verstanden, dass die Indys in der Turbo Delphi Explorer voll nutzbar sind. Man kann sie nur nicht (visuell) auf die Form übertragen. Gibt man aber die ganzen Werte als Code ein, statt im Eigenschaftenbereich, funktioniert das trotzdem wunderbar.
Bei Download verwendet man dann 'put', statt 'get'...
Ich finde das ganze mit den Indys eine sehr schöne Sache, da es auch leicht zu realisieren ist, eine ProgressBar oder einer Geschwindigkeitsanzeige einzubauen.
Viele Grüße...