Sample code for 30+ languages & platforms
B4X

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 B4X Downloads

B4X
Dim success As Boolean = False

Dim upload As ChilkatUpload
upload.Initialize("upload")

'  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("file1", "dude.gif")
upload.AddFileReference("file2", "pigs.xml")
upload.AddFileReference("file3", "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.BeginUpload
If success <> True Then
    Log(upload.LastErrorText)
Else
    Log("Upload started...")
End If


'  Wait for the upload to finish.
'  Print the progress as we wait...
Do 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:
    Log(upload.PercentUploaded & "% " & upload.NumBytesSent & "/" & upload.TotalUploadSize)

    '  Sleep 2/10ths of a second.
    upload.SleepMs(200)

Loop

'  Did the upload succeed?
If upload.UploadSuccess = True Then
    Log("Files uploaded!")
Else
    Log(upload.LastErrorText)
End If