Sample code for 30+ languages & platforms
Lua

CRLF Mode

See more FTP Examples

The CrlfMode property applies when downloading files in ASCII mode. If CrlfMode is set to 0 (the default), then the ASCII transfer happens normally without alteration. A value of 1 converts all line endings to CR+ LF. A value of 2 converts all line endings to LF-only. A value of 3 converts all line endings to CR-only.

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.chilkatsoft.com"
ftp.username = "MyLogin"
ftp.password = "MyPassword"

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

-- Set the transfer mode to ASCII
success = ftp:set_type_ascii()
if not success then
    print(ftp.last_error_text)
    return
end

-- Set the CrlfMode to ensure that line endings are CR+LF:
ftp.crlf_mode = 1

-- CrlfMode line ending settings:
-- 0 = do ASCII transfer without alteration.
-- 1 = CR+LF
-- 2 = LF-only
-- 3 = CR-only

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

local localFilename = "hamlet.xml"
local remoteFilename = "hamlet.xml"

-- Turn on session logging for the upload:
ftp.keep_session_log = true

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

-- View the session log.  You can verify visually that
-- the transfer was in ascii mode.
print(ftp.session_log)

success = ftp:disconnect()

print("File Downloaded!")