function DownloadTemporaryFile(const Url, FileName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;
Выполняет загрузку файла по указанному URL-адресу во
временный каталог. Для определения расположения временного каталога
используйте ExpandConstant('{tmp}')
.
Если указано значение параметра RequiredSHA256OfFile, будет выполнено его сравнение с хеш-суммой SHA-256 загруженного файла и вызвано исключение, если они не совпадают.
В случае ошибки будет вызвано исключение. Иначе функция вернёт размер загруженных данных. Если указано значение параметра RequiredSHA256OfFile и файл уже был загружен, функция вернёт значение 0.
Поддерживается протокол HTTPS (но без просроченных или самоподписанных сертификатов), а также HTTP. Перенаправления выполняются автоматически и применяются автоматические настройки прокси. Безопасно использовать для различных сервисов.
Для обычной аутентификации используйте SetDownloadCredentials.
Для параметра OnDownloadProgress укажите функцию, которая будет передавать информацию о ходе загрузки, или значение nil, если в этом нет необходимости.
Класс TOnDownloadProgress
представлен следующей функцией:
TOnDownloadProgress = function(const Url, FileName: String; const Progress, ProgressMax: Int64): Boolean;
Параметр ProgressMax будет равен 0, если размер файла по-прежнему неизвестен. Функция возвращает значение True, которое позволяет продолжить загрузку, иначе — False.
[Code] function OnDownloadProgress(const Url, Filename: String; const Progress, ProgressMax: Int64): Boolean; begin if ProgressMax <> 0 then Log(Format(' %d из %d байт.', [Progress, ProgressMax])) else Log(Format(' %d байт.', [Progress])); Result := True; end; function InitializeSetup: Boolean; begin try DownloadTemporaryFile('https://jrsoftware.org/download.php/is.exe?dontcount=1', 'innosetup-latest.exe', '', @OnDownloadProgress); DownloadTemporaryFile('https://jrsoftware.org/download.php/iscrypt.dll?dontcount=1', 'ISCrypt.dll', '2f6294f9aa09f59a574b5dcd33be54e16b39377984f3d5658cda44950fa0f8fc', @OnDownloadProgress); Result := True; except Log(GetExceptionMessage); Result := False; end; end;
Также смотрите в файле CodeDownloadFiles.iss другой пример с использованием CreateDownloadPage.
SetDownloadCredentials
DownloadTemporaryFileSize
DownloadTemporaryFileDate
CreateDownloadPage
ExtractTemporaryFile