Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set upload [new_CkUpload]

# Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
# that will process the HTTP Upload.
CkUpload_put_Hostname $upload "www.mywebserver.com"
CkUpload_put_Path $upload "/receiveUpload.aspx"

# Add one or more files to be uploaded.
CkUpload_AddFileReference $upload "file1" "dude.gif"
CkUpload_AddFileReference $upload "file2" "pigs.xml"
CkUpload_AddFileReference $upload "file3" "sample.doc"

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

# Begin the HTTP upload in a background thread:
set success [CkUpload_BeginUpload $upload]
if {$success != 1} then {
    puts [CkUpload_lastErrorText $upload]
} else {
    puts "Upload started.."
}

# Wait for the upload to finish.
# Print the progress as we wait...
while {[CkUpload_get_UploadInProgress $upload] == 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:
    puts [CkUpload_get_PercentUploaded $upload]% [CkUpload_get_NumBytesSent $upload]/[CkUpload_get_TotalUploadSize $upload]

    # Sleep 2/10ths of a second.
    CkUpload_SleepMs $upload 200

}

# Did the upload succeed?
if {[CkUpload_get_UploadSuccess $upload] == 1} then {
    puts "Files uploaded!"
} else {
    puts [CkUpload_lastErrorText $upload]
}


delete_CkUpload $upload