Lianja
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
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