Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loUpload

lnSuccess = 0

loUpload = CreateObject('Chilkat.Upload')

* 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:
lnSuccess = loUpload.BeginUpload()
IF (lnSuccess <> 1) THEN
    ? loUpload.LastErrorText
ELSE
    ? "Upload started..."
ENDIF

* Wait for the upload to finish.
* Print the progress as we wait...
DO WHILE (loUpload.UploadInProgress = 1)
    * 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 = 1) THEN
    ? "Files uploaded!"
ELSE
    ? loUpload.LastErrorText
ENDIF

RELEASE loUpload