Sample code for 30+ languages & platforms
Perl

Asynchronous HTTPS Upload (TLS)

See more Upload Examples

Demonstrates how to do an HTTPS (TLS) upload asynchronously in a background thread.

A server-side C# example showing how to receive an upload is located at C# ASP.NET Code to Receive Upload

Chilkat Perl Downloads

Chilkat2 Perl
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');

# To upload using SSL/TLS (https), set the Ssl property = 1
$upload->Ssl(1);

# 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";
}