Sample code for 30+ languages & platforms
Swift

Asynchronous HTTP Upload

See more Upload Examples

Demonstrates how to do an HTTP upload asynchronously in a background thread.

A server-side C# example showing how to receive an upload is located at C# ASP.NET Code to Receive Upload

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let upload = CkoUpload()!

    // Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
    // that will process the HTTP Upload.
    upload.hostname = "www.mywebserver.com"
    upload.path = "/receiveUpload.aspx"

    // Add one or more files to be uploaded.
    upload.addFileReference(name: "file1", path: "dude.gif")
    upload.addFileReference(name: "file2", path: "pigs.xml")
    upload.addFileReference(name: "file3", path: "sample.doc")

    // Begin the HTTP upload in a background thread:
    success = upload.begin()
    if success != true {
        print("\(upload.lastErrorText!)")
    }
    else {
        print("Upload started...")
    }

    // Wait for the upload to finish.
    // Print the progress as we wait...
    while (upload.uploadInProgress == true) {
        // We can abort the upload at any point by calling:
        // upload.AbortUpload();

        // Display the percentage complete and the number of bytes uploaded so far..
        // The total upload size will become set after the upload begins:
        print("\(upload.percentUploaded)% \(upload.numBytesSent)/\(upload.totalUploadSize)")

        // Sleep 2/10ths of a second.
        upload.sleepMs(millisec: 200)

    }

    // Did the upload succeed?
    if upload.uploadSuccess == true {
        print("Files uploaded!")
    }
    else {
        print("\(upload.lastErrorText!)")
    }


}