DataFlex
DataFlex
HTTP multipart/form-data Upload
See more HTTP Examples
Demonstrates how to upload files to an HTTP server using a multipart/form-data POST.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Variant vReq
Handle hoReq
Variant vResp
Handle hoResp
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
Set ComHttpVerb Of hoReq To "POST"
Set ComContentType Of hoReq To "multipart/form-data"
Set ComPath Of hoReq To "rcvFormDataUpload.aspx"
// Send an "Expect: 100-continue" header in the request.
// This causes the HTTP server to end a 100-continue response
// immediately after receiving the HTTP header. The client
// (Chilkat) will receive this intermediate response, and if
// it's not an error response, it knows that the HTTP server will
// accept the data that is forthcoming.
// The alternative is to get an error response after trying to upload
// the entire contents of the files.
Send ComAddHeader To hoReq "Expect" "100-continue"
// Call AddFileForUpload2 for each file to be uploaded in the HTTP multipart/form-data POST
// To allow Chilkat to determine the content-type automatically based on file-extension,
// call AddFileForUpload instead.
// The 1st arg is the filename passed in the HTTP request.
// The 2nd arg is the path in the local filesytem.
// The file is not loaded into memory. It is streamed directly from the file
// when the HTTP POST is sent.
Get ComAddFileForUpload2 Of hoReq "starfish.jpg" "c:/qa_data/starfish.jpg" "image/jpg" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoReq To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComAddFileForUpload Of hoReq "something.pdf" "c:/qa_data/something.pdf" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoReq To sTemp1
Showln sTemp1
Procedure_Return
End
// Its also possible to add a file from a string:
Get ComAddStringForUpload Of hoReq "test.xml" "test.xml" "<abc>This is the test.xml content</abc>" "utf-8" To iSuccess
// We'll assume success since no files are involved..
// This sends the HTTP request (with 3 files being uploaded) to
// http://www.mywebserver123abc.com/rcvFormDataUpload.aspx
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoReq to vReq
Get pvComObject of hoResp to vResp
Get ComHttpSReq Of hoHttp "www.mywebserver123abc.com" 80 False vReq vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStatusCode Of hoResp To iTemp1
Showln "HTTP response status: " iTemp1
// See the online reference documentation for
// other information that can be obtained from the response object.
// To send using SSL/TLS, do this instead.
// This sends to https://www.mywebserver123abc.com/rcvFormDataUpload.aspx
Get pvComObject of hoReq to vReq
Get pvComObject of hoResp to vResp
Get ComHttpSReq Of hoHttp "www.mywebserver123abc.com" 443 True vReq vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStatusCode Of hoResp To iTemp1
Showln "HTTP response status: " iTemp1
// See the online reference documentation for
// other information that can be obtained from the response object.
End_Procedure