Tcl
Tcl
REST File Upload (multipart/form-data)
See more REST Examples
Demonstrates how to upload a file using multipart/form-data.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set rest [new_CkRest]
# Connect to the HTTP server using TLS.
set bTls 1
set port 443
set bAutoReconnect 1
# Make sure to replace "www.chilkatsoft.com" with your domain..
set success [CkRest_Connect $rest "www.chilkatsoft.com" $port $bTls $bAutoReconnect]
if {$success != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
exit
}
set fileStream [new_CkStream]
CkStream_put_SourceFile $fileStream "qa_data/jpg/starfish.jpg"
CkRest_AddHeader $rest "Content-Type" "multipart/form-data"
CkRest_put_PartSelector $rest "1"
CkRest_AddHeader $rest "Content-Type" "image/jpg"
CkRest_AddHeader $rest "Content-Disposition" "form-data; name=\"filename\"; filename=\"starfish.jpg\""
CkRest_SetMultipartBodyStream $rest $fileStream
CkRest_put_PartSelector $rest "0"
set responseBody [CkRest_fullRequestMultipart $rest "POST" "/the_uri_path_to_receive_the_upload"]
if {[CkRest_get_LastMethodSuccess $rest] != 1} then {
puts [CkRest_lastErrorText $rest]
delete_CkRest $rest
delete_CkStream $fileStream
exit
}
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
puts "Received error response code: [CkRest_get_ResponseStatusCode $rest]"
delete_CkRest $rest
delete_CkStream $fileStream
exit
}
puts "File uploaded"
delete_CkRest $rest
delete_CkStream $fileStream