Sample code for 30+ languages & platforms
Go

FTP Upload / Download to a BinData Object

Demonstrates how to FTP upload the contents of a BinData object, and FTP downloads to the a BinData object.

Chilkat Go Downloads

Go
    success := false

    // This example assumes Chilkat Ftp2 to have been previously unlocked.
    // See Unlock Ftp2 for sample code.

    ftp := chilkat.NewFtp2()

    ftp.SetHostname("www.my-ftp-server.com")
    ftp.SetUsername("mFtpLogin")
    ftp.SetPassword("myFtpPassword")

    // Connect to the FTP server.
    success = ftp.ConnectOnly()
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        return
    }

    // Authenticate with the FTP server.
    success = ftp.LoginAfterConnectOnly()
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        return
    }

    bdA := chilkat.NewBinData()
    bdA.LoadFile("qa_data/jpg/penguins.jpg")

    // Upload the contents of bdA to the FTP server.
    remoteFilename := "penguins.jpg"
    success = ftp.PutFileBd(bdA,remoteFilename)
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        bdA.DisposeBinData()
        return
    }

    // Download...
    bdB := chilkat.NewBinData()
    success = ftp.GetFileBd(remoteFilename,bdB)
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        bdA.DisposeBinData()
        bdB.DisposeBinData()
        return
    }

    // Verify that bdA and bdB have the exact same contents.
    fmt.Println("size of bdA: ", bdA.NumBytes())
    if bdA.ContentsEqual(bdB) == true {
        fmt.Println("Contents are equal. Success.")
    } else {
        fmt.Println("Contents are NOT equal.  Failed.")
    }

    ftp.Disconnect()

    ftp.DisposeFtp2()
    bdA.DisposeBinData()
    bdB.DisposeBinData()