Скачиваем и загружаем файлы через FTP

Cети и Интернет   15 Февраль 2011  Автор статьи: admin 

В этом уроке я покажу, как быстро и легко скачивать и загружать файлы, используя FTP доступ к удаленному серверу или хостингу. FTP доступ позволяет работать с файлами на удаленном сервере прямо как с файлами, которые хранятся у вас на компьютере, что достаточно удобно.

Далее я привожу две очень удобные для дальнейшего использования процедуры:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//Закачать файл на сервер, используя FTP доступ

procedure ftpsend(host,username,password,filefrom,fileto:string;port:integer);
var
ftp: TIdFTP;
begin
ftp:=TIdFTP.Create(Application);
try
try
ftp.Host:=host;// ftp адрес сервера
ftp.Port:=port;
ftp.Username:=username;//логин
ftp.Password:=password;//Пароль
ftp.Connect(true, 2000);
AssErt(ftp.Connected);
ftp.ChangeDir('/');//Устанавливаем папку на сервере
ftp.Put(filefrom,fileto,false); //Передача файла на сервер "Откуда-Куда"
ShowMessage('Отправлено');
finally

ftp.Free;
end;
except
ShowMessage('Попытка отправки файла на сервер не удалась');
end;
end;

//Получить  файл с сервера по FTP
procedure ftpget(host,username,password,filefrom,fileto:string;port:integer);
var
ftp: TIdFTP;
begin
ftp:=TIdFTP.Create(Application);
try
try
ftp.Host:=host;// ftp адрес сервера
ftp.Port:=port;
ftp.Username:=username;//логин
ftp.Password:=password;//Пароль ftp.Connect(true, 2000);
AssErt(ftp.Connected);
ftp.ChangeDir('/');// Установить папку на сервере
ftp.Get(filefrom,fileto,true);//Принятие файла на сервер "Откуда-Куда"
ShowMessage(‘Файл принят’);
finally

ftp.Free;
end;
except
ShowMessage  ('Попытка приема файла с сервера не удалась');
end;
end;

[note]В данном исходном коде используется компонент IdFTP[/note]

  • demon-sheff

    Я делаю обновление программы через FTP так:
    procedure TForm1.Timer2Timer(Sender: TObject);
    Var
    version:WideString;
    ms:TMemoryStream;
    begin
    ms:=TMemoryStream.Create;
    try
    IdFTP1.Passive:=true;
    IdFTP1.Connect;
    AssErt(IdFTP1.Connected);
    try
    version:=IdFTP1.Get(‘Soft/update/version.ini’);
    if version=Label6.Caption then
    begin
    Application.MessageBox(‘Вы используете последнюю версию программы!’,’Внимание’,MB_OK);
    end
    else
    begin
    IdFTP1.Get(‘Soft/update/Install.exe’,’c:Install.exe’,true);//Файл Откуда-Куда
    end;
    end;
    ms.Free; IdFTP1.Disconnect;
    end
    except
    ShowMessage (‘Неудачная попытка приема файла с сервера’);
    end;
    end;

    но почему-то у меня выдает ошибку E2250 There is no overloaded version of ‘Get’ that can be called with these arguments, буду презнатилен если подскажите в чем дело…

    • http://cybern.ru/ lordrp

      Ну посмотри еще раз сигнатуру Get, у тебя значит при вызове IdFTP1.Get(‘Soft/update/Install.exe’,’c:Install.exe’,true); или IdFTP1.Get(‘Soft/update/Install.exe’,’c:Install.exe’,true); используется недопустимый набор параметров. (Ну тип данных перепутал или количество)

Научиться программировать

  • на Delphi

  • на Java

  • на C++