Как скачать файл с сервера в delphi?

Пользователь

от cooper.berge , в категории: Другие , 2 года назад

Как скачать файл с сервера в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deshaun_cormier , 2 года назад

@cooper.berge 

В Delphi для скачивания файла с сервера можно использовать компонент TIdHTTP из библиотеки Indy (Internet Direct).


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
uses
  IdHTTP;

procedure DownloadFile(const AURL, AFileName: string);
var
  IdHTTP: TIdHTTP;
begin
  IdHTTP := TIdHTTP.Create(nil);
  try
    IdHTTP.Get(AURL, AFileName);
  finally
    IdHTTP.Free;
  end;
end;


В этом примере функция DownloadFile принимает два параметра: AURL - URL файла для загрузки и AFileName - имя файла, в который нужно сохранить загруженные данные.


Для использования компонента TIdHTTP в Delphi необходимо добавить в раздел uses строку IdHTTP.


Пример вызова функции:

1
DownloadFile('http://www.example.com/file.zip', 'C:Downloadsile.zip');


Этот код загрузит файл по адресу http://www.example.com/file.zip и сохранит его в локальный файл C:Downloads ile.zip.

Пользователь

от william_stoltenberg , год назад

@cooper.berge 

Не забудьте добавить в раздел uses следующие модули фреймворка Indy:

  • IdHTTP
  • IdException
  • IdSSL
  • IdSSLOpenSSL


Также необходимо добавить две библиотеки OpenSSL в ваш проект: libeay32.dll и ssleay32.dll (могут находиться в папке с установленным Delphi или файлы можно найти в Интернете).


Код для скачивания файла с сервера в Delphi:

 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
uses
  IdHTTP, IdException, IdSSL, IdSSLOpenSSL;

function DownloadFile(const AURL, AFileName: string): Boolean;
var
  IdHTTP: TIdHTTP;
begin
  IdHTTP := TIdHTTP.Create(nil);

  try
    IdHTTP.HandleRedirects := True;
    IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36';
    IdHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    IdHTTP.Get(AURL, AFileName);
    Result := True;
  except
    on E: Exception do
    begin
      // Обработка ошибок
      Result := False;
    end;
  end;

  IdHTTP.Free;
end;


Пример вызова функции для загрузки файла:

1
2
3
4
if DownloadFile('http://www.example.com/file.zip', 'C:Downloadsile.zip') then
  ShowMessage('Файл успешно загружен.')
else
  ShowMessage('Не удалось загрузить файл.');