Sample code for 30+ languages & platforms
Lianja

FTP Download Binary File to a Stream

See more FTP Examples

Demonstrates how to FTP download a binary file to a Chilkat stream.

Note: This example requires Chilkat v9.5.0.67 or greater.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// This example assumes the Chilkat FTP2 API to have been previously unlocked.
// See FTP2 Unlock Sample for sample code.

loFtp = createobject("CkFtp2")

loFtp.Hostname = "www.my-ftp-server.com"
loFtp.Username = "mFtpLogin"
loFtp.Password = "myFtpPassword"
loFtp.AuthTls = .T.
loFtp.Passive = .T.

// Connect and login to the FTP server using TLS.
llSuccess = loFtp.Connect()
if (llSuccess <> .T.) then
    ? loFtp.LastErrorText
    release loFtp
    return
endif

// We'll read the incoming data chunk-by-chunk and write to an output file.
loFac = createobject("CkFileAccess")
llSuccess = loFac.OpenForWrite("qa_output/penguins2.jpg")
if (llSuccess <> .T.) then
    ? loFac.LastErrorText
    release loFtp
    release loFac
    return
endif

loStreamObj = createobject("CkStream")

// Create a task to do the FTP download.
t = loFtp.GetFileToStreamAsync("penguins2.jpg",loStreamObj)
if (loFtp.LastMethodSuccess <> .T.) then
    ? loFtp.LastErrorText
    release loFtp
    release loFac
    release loStreamObj
    return
endif

// Start the task in a background thread.
t.Run()

loBd = createobject("CkBinData")
do while loStreamObj.EndOfStream <> .T.
    // Get the next chunk of JPG bytes.
    loStreamObj.ReadBd(loBd)
    // Do something with it..
    // In this simple example, we'll just write to the file.
    loFac.FileWriteBd(loBd,0,0)
    // Clear for the next read.
    loBd.Clear()
enddo

loFac.FileClose()

release t

? "Success."


release loFtp
release loFac
release loStreamObj
release loBd