Sample code for 30+ languages & platforms
Chilkat2-Python

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 Chilkat2-Python Downloads

Chilkat2-Python
import chilkat2

success = False

upload = chilkat2.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):
    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(str(upload.PercentUploaded) + "% " + str(upload.NumBytesSent) + "/" + str(upload.TotalUploadSize))

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

# Did the upload succeed?
if (upload.UploadSuccess == True):
    print("Files uploaded!")
else:
    print(upload.LastErrorText)