Sample code for 30+ languages & platforms
Tcl

HTTPS Upload File to Web Server

See more HTTP Examples

Uploads a file to a web server using HTTPS.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# The ContentType, HttpVerb, and Path properties should
# always be explicitly set.
set req [new_CkHttpRequest]

CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_Path $req "/receiveMyUpload.aspx"
CkHttpRequest_put_ContentType $req "multipart/form-data"

CkHttpRequest_AddStringForUpload $req "fileA" "fileA.txt" "This is the contents of file A" "utf-8"
set success [CkHttpRequest_AddFileForUpload $req "starfish.jpg" "qa_data/jpg/starfish.jpg"]
if {$success == 0} then {
    puts [CkHttpRequest_lastErrorText $req]
    delete_CkHttpRequest $req
    exit
}

set http [new_CkHttp]

# ----------------------------------------------------------------------------
# IMPORTANT:
# HTTP uploads require a counterpart implementation on the server, written in any desired language
# such as C#, Classic ASP, PHP, etc., which consumes the upload being sent.
# See: ASP.NET Receive Upload
# ----------------------------------------------------------------------------

# Do the upload.
set useSslTls 1
set resp [new_CkHttpResponse]

set success [CkHttp_HttpSReq $http "www.example.com" 443 $useSslTls $req $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttpRequest $req
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

puts "response status code = [CkHttpResponse_get_StatusCode $resp]"
puts "response body:"
puts [CkHttpResponse_bodyStr $resp]

delete_CkHttpRequest $req
delete_CkHttp $http
delete_CkHttpResponse $resp