Sample code for 30+ languages & platforms
C#

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 C# Downloads

C#
bool success = false;

Chilkat.Upload upload = new Chilkat.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) {
    Debug.WriteLine(upload.LastErrorText);
}
else {
    Debug.WriteLine("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:
    Debug.WriteLine(Convert.ToString((int) upload.PercentUploaded) + "% " + Convert.ToString((int) upload.NumBytesSent) + "/" + Convert.ToString((int) upload.TotalUploadSize));

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

}

//  Did the upload succeed?
if (upload.UploadSuccess == true) {
    Debug.WriteLine("Files uploaded!");
}
else {
    Debug.WriteLine(upload.LastErrorText);
}