Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set ftp [new_CkFtp2]

CkFtp2_put_Hostname $ftp "ftp.chilkatsoft.com"
CkFtp2_put_Username $ftp "MyLogin"
CkFtp2_put_Password $ftp "MyPassword"

# Connect and login to the FTP server.
set success [CkFtp2_Connect $ftp]
if {$success != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

# Set the transfer mode to ASCII
set success [CkFtp2_SetTypeAscii $ftp]
if {$success != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

# Set the CrlfMode to ensure that line endings are CR+LF:
CkFtp2_put_CrlfMode $ftp 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.
set success [CkFtp2_ChangeRemoteDir $ftp "junk"]
if {$success != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

set localFilename "hamlet.xml"
set remoteFilename "hamlet.xml"

# Turn on session logging for the upload:
CkFtp2_put_KeepSessionLog $ftp 1

# Download a file.
set success [CkFtp2_GetFile $ftp $remoteFilename $localFilename]
if {$success != 1} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

# View the session log.  You can verify visually that
# the transfer was in ascii mode.
puts [CkFtp2_sessionLog $ftp]

set success [CkFtp2_Disconnect $ftp]

puts "File Downloaded!"

delete_CkFtp2 $ftp