Sample code for 30+ languages & platforms
Lua

FTP Download with Progress Event Callbacks

See more FTP Examples

FTP download with progress event callbacks.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local ftp = chilkat.Ftp2.new()
ftp:set_event_handler({
    percent_done = function(percentDone)
        print("Percent Done: " .. percentDone)
        return false   -- return true to abort the method in progress
    end,
    progress_info = function(name, value)
        print(name .. ": " .. value)
    end,
})

ftp.hostname = "ftp.someFtpServer.com"
ftp.username = "myLogin"
ftp.password = "myPassword"

-- Connect and login to the FTP server.
local success = ftp:connect_only()
if not success then
    print(ftp.last_error_text)
    return
end

success = ftp:login_after_connect_only()
if not success then
    print(ftp.last_error_text)
    return
end

-- Change to the remote directory where the file is located.
-- This step is only necessary if the file is not in the home directory
-- of the FTP account.
success = ftp:change_remote_dir("junk")
if not success then
    print(ftp.last_error_text)
    return
end

local localFilename = "c:/temp/hamlet.xml"
local remoteFilename = "hamlet.xml"

-- Ensure that we get PercentDone callbacks.
ftp.auto_get_size_for_progress = true

-- Download the file.
success = ftp:get_file(remoteFilename, localFilename)
if not success then
    print(ftp.last_error_text)
    return
end

success = ftp:disconnect()

print("File Downloaded!")