ΠΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΡ. 18.1.
Π ΠΈΡ. 18.1. Π€ΠΎΡΠΌΠ° FTP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ:
procedure TForm1.Button1Click(sender: TObject);
begin
ftp.Host:= ftpserver.Text; //ftp-ΡΠ΅ΡΠ²Π΅Ρ
ftp.UserID:= name.Text;//Π»ΠΎΠ³ΠΈΠ½
ftp.Password:= pass.Text;// ΠΏΠ°ΡΠΎΠ»Ρ
ftp.Port:= StrToInt(port.Text); //ΠΏΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
//ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
if not ftp.Connected then ftp.Connect;
end;
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ·Π½Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΡΠΊΠ»ΡΡΠΈΡΡΡΡ:
procedure TForm1.Button2Click(Sender: TObject);
begin
if ftp.Connected then//Π΅ΡΠ»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½
ftp.Disconnect;//ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
end;
ΠΡΠ»ΠΈ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΡΠΊΠ»ΡΡΠΈΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΠΎ ΠΌΡ ΡΠ°Π·ΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π£Π΄Π°Π»ΠΈΡΡ:
procedure TForm1.Button4Click(Sender : TObject);
begin
ftp.Delete(del.text); //ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»
end;
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ», ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅Π» Π² ΠΏΠΎΠ»Π΅ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ.
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³:
procedure TForm1.Button5Click(Sender: TObject);
begin
ftp.ChangeDir(cd.Text); //ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
end;
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΠΎΠ»Π΅ cd.
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
procedure TForm1.Button6Click(Sender: TObject);
begin
ftp.DoCommand(cmd.Text); //Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
end;
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, Π½ΠΎ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π»ΡΠ±ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ cmd, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³:
procedure TForm1.Button7Click(Sender: TObject);
begin
ftp.MakeDirectory(md.Text); //ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
end;
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³:
procedure TForm1.Button8Click(Sender: TObject);
begin
ftp.RemoveDir(rd.Text); //ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
end;
ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π‘ΠΊΠ°ΡΠ°ΡΡ ΡΠ°ΠΉΠ»:
procedure TForm1.Button9Click(Sender: TObject);
begin
//ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
if Save1.Execute
then //ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»
ftp.Download(download.Text, save1.FileName)
else ShowMessage('File not saved!'); {Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ°ΠΉΠ»}
end;
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΈ ΠΏΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ:
procedure TForm1.Button3Click(Sender: TObject);
var
i: integer;
FName, temp: string; //Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°
begin
if not Open1.Execute then ShowMessage('Π€Π°ΠΉΠ» Π½Π΅ Π²ΡΠ±ΡΠ°Π½!')
else begin
//ΠΎΡΠΈΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°
temp:= '';
FName:= '';
//ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°
for i: = Length(Open1.FileName) downto 1 do
begin
if Open1.FileName[i] = '\' then break;
temp:= temp+ Open1.FileName[i];
end;
for i:=length(temp) downto 1 do
fname:= fname + temp[i];
ftp.Upload(Open1.FileName, FName); //Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ°ΠΉΠ»
end;
end;
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ°ΡΠ΅ΠΌ ΡΠ·Π½Π°Π΅ΠΌ ΠΈΠΌΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
Π ΠΎΠ±ΡΠ΅ΠΌ, Π½Π°Ρ ftp-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΠΏΡΠΎΡΠ΅ΠΊΠ°Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ftp.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ β OnAuthΠ΅ntiΡatiΠΎnFailed:
procedure TForm1.ftpAuthenticationFailed(var Handled: Boolean);
begin
status1.Lines.Add('ΠΠ΅Π²Π΅ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ β OnConnect:
procedure TForm1.ftpConnect(Sender:tobject);
begin
status1.Lines.Add('ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ');
//Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ip-Π°Π΄ΡΠ΅Ρ
status1Lines.Add('IP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°: ' + ftp.LocalIP);
//ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ip-Π°Π΄ΡΠ΅Ρ
status1Lines.Add('IPΡΠ΅ΡΠ²Π΅ΡΠ°: ' + ftp.RemoteIP);
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ β OnConnectionFailed:
procedure TForm1.ftpConnectionFailed(Sender: TObject);
begin
status1.Lines.Add('He ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° β OnDisconnect:
procedure TForm1.ftpDisconnect(Sender: TObject);
begin
status1.Lines.Add('ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΎ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ β OnError:
procedure TForml.ftpError(Sender: TComponent; Errno: Word; Errmsg: String);
begin
status1.Lines.Add('ΠΡΠΈΠ±ΠΊΠ°: ' + errmsg);
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ β OnInvaIidHost:
procedure TForm1.ftpInvalidHost(var Handled: Boolean);
begin
status1.Lines.Add('ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ β OnStatus:
procedure TForm1.ftpStatus(Sender: TComponent; Status: String);
begin
status1.Lines.Add(Status);
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β OnSuccess:
procedure TForm1.ftpSuccess(Trans_Type: TCmdType);
begin
status1.Lines.Add('Π£ΡΠΏΠ΅ΡΠ½ΠΎ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ β OnTransactionStart:
procedure TForm1.ftpTransactionStart(Sender: TObject);
begin
status1.Lines.Add('ΠΠ°ΡΠ°Π»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ');
end;
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ β OnTransactionStop :
procedure TForm1.ftpTransactionStop(Sender: TObject);
begin
statusl.Lines.Add('ΠΠΎΠ½Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ');
end;
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Web-ΡΠ°ΠΉΡΠ°, ΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ FTP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΡ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠΈΠ½Π³Π΅.
ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ FTP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 18.1.
ΠΠΈΡΡΠΈΠ½Π³ 18.1. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ FTP-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, NMFtp, StdCtrls, Psock;
type
TForm1 = class(TForm)
ftp: TNMFTP;
ftpserver: TEdit;
Label1: TLabel;
Label2: TLabel;
name: TEdit;
Label3: TLabel;
pass: TEdit;
Label4: TLabel;
port: TEdit;
Button1: TButton;
Button2: TButton;
status1: TMemo;
Button3: TButton;
Open1: TOpenDialog;
Button4: TButton;
del: TEdit;
Button5: TButton;
cd: TEdit;
cmd: TEdit;
Button6: TButton;
md: TEdit;
Button7: TButton;
rd: TEdit;
Button8: TButton;
download: TEdit;
Button9: TButton;
Save1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure ftpStatus(Sender: TComponent; Status: String);
procedure ftpError(Sender: TComponent; Errno: Word; Errmsg : String);
procedure ftpDisconnect(Sender: TObject);
procedure ftpConnect(Sender: TObject);
procedure ftpConnectionFailed(Sender: TObject);
procedure ftpInvalidHost(var Handled: Boolean);
procedure ftpSuccess(Trans_Type: TCmdType);
procedure ftpTransactionStart(Sender: TObject);
procedure ftpTransactionStop(Sender: TObject);
procedure ftpAuthenticationFailed(var Handled: Boolean);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);