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