![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Go) Bandwidth Throttled Asynchronous HTTP UploadDemonstrates 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.
upload := chilkat.NewUpload()
// Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
// that will process the HTTP Upload.
upload.SetHostname("www.mywebserver.com")
upload.SetPath("/receiveUpload.aspx")
// Add one or more files to be uploaded.
upload.AddFileReference("file1","dude.gif")
upload.AddFileReference("file2","pigs.xml")
upload.AddFileReference("file3","sample.doc")
// Set the BandwidthThrottleUp property to throttle to approx 64K/second
upload.SetBandwidthThrottleUp(65536)
// Begin the HTTP upload in a background thread:
success := upload.BeginUpload()
if success != true {
fmt.Println(upload.LastErrorText())
} else {
fmt.Println("Upload started...")
}
// Wait for the upload to finish.
// Print the progress as we wait...
for (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:
fmt.Println(upload.PercentUploaded(), "% ", upload.NumBytesSent(), "/", upload.TotalUploadSize())
// Sleep 2/10ths of a second.
upload.SleepMs(200)
}
// Did the upload succeed?
if upload.UploadSuccess() == true {
fmt.Println("Files uploaded!")
} else {
fmt.Println(upload.LastErrorText())
}
upload.DisposeUpload()
|
||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.