Sample code for 30+ languages & platforms
Lianja

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

Lianja
llSuccess = .F.

loUpload = createobject("CkUpload")

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

// Add one or more files to be uploaded.
loUpload.AddFileReference("file1","dude.gif")
loUpload.AddFileReference("file2","pigs.xml")
loUpload.AddFileReference("file3","sample.doc")

// Set the BandwidthThrottleUp property to throttle to approx 64K/second
loUpload.BandwidthThrottleUp = 65536

// Begin the HTTP upload in a background thread:
llSuccess = loUpload.BeginUpload()
if (llSuccess <> .T.) then
    ? loUpload.LastErrorText
else
    ? "Upload started..."
endif

// Wait for the upload to finish.
// Print the progress as we wait...
do while (loUpload.UploadInProgress = .T.)
    // 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:
    ? str(loUpload.PercentUploaded) + "% " + str(loUpload.NumBytesSent) + "/" + str(loUpload.TotalUploadSize)

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

enddo

// Did the upload succeed?
if (loUpload.UploadSuccess = .T.) then
    ? "Files uploaded!"
else
    ? loUpload.LastErrorText
endif



release loUpload