Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat FTP2 API to have been previously unlocked.
// See FTP2 Unlock Sample for sample code.
let ftp = CkoFtp2()!
ftp.hostname = "www.my-ftp-server.com"
ftp.username = "mFtpLogin"
ftp.password = "myFtpPassword"
ftp.authTls = true
ftp.passive = true
// Connect and login to the FTP server using TLS.
success = ftp.connect()
if success != true {
print("\(ftp.lastErrorText!)")
return
}
// We'll read the incoming data chunk-by-chunk and write to an output file.
let fac = CkoFileAccess()!
success = fac.open(forWrite: "qa_output/penguins2.jpg")
if success != true {
print("\(fac.lastErrorText!)")
return
}
let streamObj = CkoStream()!
// Create a task to do the FTP download.
var t: CkoTask? = ftp.getFile(toStreamAsync: "penguins2.jpg", to: streamObj)
if ftp.lastMethodSuccess != true {
print("\(ftp.lastErrorText!)")
return
}
// Start the task in a background thread.
t!.run()
let bd = CkoBinData()!
while streamObj.endOfStream != true {
// Get the next chunk of JPG bytes.
streamObj.readBd(binData: bd)
// Do something with it..
// In this simple example, we'll just write to the file.
fac.fileWriteBd(binData: bd, offset: 0, numBytes: 0)
// Clear for the next read.
bd.clear()
}
fac.fileClose()
t = nil
print("Success.")
}