@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:Downloadsile.zip'); |
Этот код загрузит файл по адресу http://www.example.com/file.zip
и сохранит его в локальный файл C:Downloadsile.zip
.
@cooper.berge
Не забудьте добавить в раздел uses следующие модули фреймворка Indy:
Также необходимо добавить две библиотеки 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:Downloadsile.zip') then ShowMessage('Файл успешно загружен.') else ShowMessage('Не удалось загрузить файл.'); |