int index = downloadUrlToFile(string url, string file, [function statusCallback])
Загружает файл из интернета по URL по протоколу HTTP.
Процесс загрузки полностью контролируем с помощью обработчика загрузки и может быть отменён.
string url
uRL ресурса
string file
путь к файлу
function statusCallback
функция-обработчик статуса загрузки, является необязательным параметром
int index
идентификатор загрузки\
local dlstatus = require('moonloader').download_status
local vk = require 'vkeys'
function download_handler(id, status, p1, p2)
if stop_downloading then
stop_downloading = false
download_id = nil
print('Загрузка отменена.')
return false -- прервать загрузку
end
if status == dlstatus.STATUS_DOWNLOADINGDATA then
print(string.format('Загружено %d из %d.', p1, p2))
elseif status == dlstatus.STATUS_ENDDOWNLOADDATA then
print('Загрузка завершена.')
end
end
function main()
print('Нажмите F1, чтобы начать загрузку файла.')
while true do
wait(0)
if wasKeyPressed(vk.VK_F1) and not download_id then
local url = 'http://nonexistentfilehosting.com/nonexistentfile.dat'
local file_path = getWorkingDirectory() .. '/downloads/file.dat'
download_id = downloadUrlToFile(url, file_path, download_handler)
print('Загрузка начата. Нажмите F2, чтобы отменить её.')
elseif wasKeyPressed(vk.VK_F2) and download_id then
stop_downloading = true
end
end
end