FTPWI.Download

FTPWI.Download ( string URL,
string Filename,
string Username = "anonymous",
string Password = "guest@",
number Mode = MODE_BINARY,
number Timeout = 20,
number Port = 21,
boolean PassiveMode = true,
function CallbackFunction = nil )
Примеры

Описание

Загружает файл из FTP сайта, используя FTP (file transfer protocol - протокол передачи файла).

Параметры

URL

(строка) Полный ftp адрес к файлу, что нужно загрузить. Например, ftp://ftp.myftpsite.com/updates/myfile.txt.

Filename

(строка) Путь назначения и имя файла для загружаемого файла. Например, C:\\MyFolder\\patch.zip.

Username

(строка) Имя для входа на FTP сайт. По умолчанию для анонимного FTP это "anonymous".

Password

(строка) Пароль для доступа к FTP сайту, что идет совместно с параметром FTP Username. Для анонимного FTP, используется ваш адрес электронной почты или пароль по умолчанию "guest<".

Mode

(число) Используемый режим для сохранения файла. Выбор из:

КОНСТАНТА
CONSTANT
ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
MODE_BINARY0Сохранить файл в точности как скачиваемый. (По умолчанию)
MODE_TEXT1Конвертировать файл из текстового режима Unix в Windows текстовый режим, если это необходимо.

Timeout

(число) Максимальное время в секундах, в течении которого действие будет ждать ответа после попытки соединения. Значение по умолчанию равно 20.

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

Port

(число) Порт для подключения. В большинстве случаев значение по умолчанию (порт 21) является стандартным для FTP.

PassiveMode

(логический) Использование пассивного/брандмауэр режима при загрузке файла. Пассивный режим (также известный как "режим брандмауэра") требуется всякий раз, когда нужна передача файлов на FTP сервер или от FTP сервера из-за брандмауэра. Прохождение значения по умолчанию истина - true включает пассивный режим, а ложь - false отключает его. Обычно, ваш компьютер делает соединение с FTP сервером, а FTP сервер отвечает открытием соединения обратно с вашим компьютером. Это возвращение соединения не будет работать если ваш компьютер не будет доступен напрямую из Интернета. В пассивном режиме, оба соединения делаются из вашего компьютера, так что FTP серверу не нужно делать никакого соединения - он просто пассивно ждет, когда ваш компьютер сделает оба соединения с ним. Большинство серверов поддерживают соединения в пассивном режиме, так что вообще лучше оставить этот параметр включенным.

CallbackFunction

(функция) Имя функции, которая будет вызываться всякий раз когда происходит операция загрузки. (Эту возвращающуюся функцию можно использовать для отображения хода выполнения операции загрузки, своим собственным способом.)

Примечание: Если в CallbackFunction установлено значение nil, тогда информация о протекании процесса будет отправлена во встроенное диалоговое окно состояния, предполагая что оно в настоящий момент видимое. (Можно показать или скрыть диалоговое окно состояния действиями StatusDlg.Show или StatusDlg.Hide соответственно.)

Возвращающаяся функция должна иметь возможность принять следующие параметры:

BytesRead

(число) Количество байт, что были загружены на настоящий момент.

FileSize

(число) Размер файла в байтах или 0, если размер файла не может быть получен от сервера.

TransferRate

(число) Текущая скорость передачи в килобайтах в секунду.

SecondsLeft

(число) Предполагаемое число секунд, оставшееся для загрузки.

SecondsLeftFormat

(строка) Предполагаемое число оставшихся секунд, сформированное как строка в виде: ""MM:SS".

Message

(строка) Или пустая строка (""), или информационное сообщение отправленное сервером, такое как например, "Resolving host name - Разрешение имени хоста" или "Connecting to Server - Подключение к серверу".

Примечание: Если этот параметр не пустая строка, это означает, что он находится в состоянии занято, или перед началом загрузки, или в конце загрузки. В этом случае все другие параметры будут проигнорированы.

Возвращающая функция должна возвращать логическое значение (истина (true) или ложь (false)), показывающее следует ли продолжать загрузку файла:

ЗНАЧЕНИЕ
VALUE
ОПИСАНИЕ
DESCRIPTION
trueПродолжить загрузку файла.
falseОстановить загрузку файла, как только это станет возможным.

Возврат

Ничего. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.
Смотрите также: Связанные действия

Примеры

Пример 1

FTPWI.Download("ftp://ftp.yourdomain.com/file.exe", _TempFolder .. "\\file.exe", "FTP_USERNAME", "FTP_PASSWORD", MODE_BINARY, 20, 21, true, nil);

err = Application.GetLastError();

if err ~= 0 then
    Dialog.Message(err, _tblErrorMessages[err]);
end
Загружаем файл 'file.exe' с FTP сайта. Если происходит ошибка, показываем сообщение об ошибке.

Примечание: _TempFolder это встроенная переменная, которая содержит путь к папке "Temp" в системе пользователя.

Пример 2

function FTPCallback(BytesRead, FileSize, TransferRate, SecondsLeft, SecondsLeftFormat, Message)
    Debug.Clear();
    Debug.Print(
    "BytesRead: " .. BytesRead .. "\r\n" ..
    "FileSize: " .. FileSize .. "\r\n" ..
    "TransferRate: " .. TransferRate .. "\r\n" ..
    "SecondsLeft: " .. SecondsLeft .. "\r\n" ..
    "SecondsLeftFormat: " .. SecondsLeftFormat .. "\r\n" ..
    "Message: " .. Message .. "\r\n"
    )
    return true;
end

Debug.ShowWindow();
FTPWI.Download("ftp://ftp.yourdomain.com/file.exe", _TempFolder .. "\\file.exe", "FTP_USERNAME", "FTP_PASSWORD", MODE_BINARY, 20, 21, true, FTPCallback);
err = Application.GetLastError();
Debug.ShowWindow(false);

if err ~= 0 then
    Dialog.Message(err, _tblErrorMessages[err]);
end
Загружаем файл 'file.exe' с FTP сайта. Если происходит ошибка, показываем сообщение об ошибке. В примере приведенном выше, возвращающаяся функция 'FTPCallback' используется для отображения загрузки данных в окне отладки.

Примечание: _TempFolder это встроенная переменная, которая содержит путь к папке "Temp" в системе пользователя.
Смотрите также: Связанные действия