Perl
Chilkat2 Perl
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 Perl Downloads
use strict;
use warnings;
use Chilkat2;
my $upload = Chilkat2::Upload->new;
# 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:
my $success = $upload->BeginUpload();
if (!$success) {
print $upload->LastErrorText, "\n";
} else {
print "Upload started...\n";
}
# Wait for the upload to finish.
# Print the progress as we wait...
while ($upload->UploadInProgress) {
# 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 $upload->PercentUploaded, '% ', $upload->NumBytesSent, '/', $upload->TotalUploadSize, "\n";
# Sleep 2/10ths of a second.
$upload->SleepMs(200);
}
# Did the upload succeed?
if ($upload->UploadSuccess) {
print "Files uploaded!\n";
} else {
print $upload->LastErrorText, "\n";
}