Swift
Swift
Bandwidth Throttled Asynchronous HTTP Upload
See more Upload Examples
Demonstrates how to do an HTTP upload asynchronously in a background thread with limiting the rate to an approximate number of bytes/second. The only difference between this example and one without bandwidth throttling is that the BandwidthThrottleUp property is set.Chilkat Swift Downloads
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")
// Set the BandwidthThrottleUp property to throttle to approx 64K/second
upload.bandwidthThrottleUp = 65536
// 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!)")
}
}