Sample code for 30+ languages & platforms
Lua

Restart/Resume FTP Upload

See more FTP Examples

Demonstrates how to restart / resume an FTP upload.

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.hostname = "ftp.example.com"
ftp.username = "login"
ftp.password = "password"

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

-- Change to the remote directory where the file will be uploaded.
success = ftp:change_remote_dir("temp")
if not success then
    print(ftp.last_error_text)
    return
end

-- In this example, assume that a previous FTP upload failed,
-- and the incomplete file (bigFile.zip) exists on the FTP server.
-- You only need to set the RestartNext property to resume
-- the upload.  When RestartNext is set, the next call
-- to PutFile (or PutFileFromBinaryData, PutFileFromTextData)
-- will automatically resume the upload from the point of failure.
-- (The way it works is that the FTP component sends a "SIZE";
-- command to the FTP server to find out how many bytes of
-- the file already exist on the server.  It then begins
-- uploading from that point.

-- Note: After PutFile is called, the RestartNext property
-- is automatically set to false.
ftp.restart_next = true

-- Upload a file with restart.
local localFilename = "bigFile.zip"
local remoteFilename = "bigFile.zip"

success = ftp:put_file(localFilename, remoteFilename)
if not success then
    print(ftp.last_error_text)
    return
end

success = ftp:disconnect()

print("File Uploaded!")