Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loFtp
LOCAL loFac
LOCAL loStreamObj
LOCAL t
LOCAL loBd

lnSuccess = 0

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

loFtp = CreateObject('Chilkat.Ftp2')

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

* Connect and login to the FTP server using TLS.
lnSuccess = loFtp.Connect()
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

* We'll read the incoming data chunk-by-chunk and write to an output file.
loFac = CreateObject('Chilkat.FileAccess')
lnSuccess = loFac.OpenForWrite("qa_output/penguins2.jpg")
IF (lnSuccess <> 1) THEN
    ? loFac.LastErrorText
    RELEASE loFtp
    RELEASE loFac
    CANCEL
ENDIF

loStreamObj = CreateObject('Chilkat.Stream')

* Create a task to do the FTP download.
t = loFtp.GetFileToStreamAsync("penguins2.jpg",loStreamObj)
IF (loFtp.LastMethodSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    RELEASE loFac
    RELEASE loStreamObj
    CANCEL
ENDIF

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

loBd = CreateObject('Chilkat.BinData')
DO WHILE loStreamObj.EndOfStream <> 1
    * 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