Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) HTTP multipart/form-data UploadDemonstrates how to upload files to an HTTP server using a multipart/form-data POST.
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vReq Handle hoReq Boolean iSuccess Variant vResp Handle hoResp String sTemp1 Integer iTemp1 Boolean bTemp1 // 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 <> True) 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 <> True) 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 pvComObject of hoReq to vReq Get ComSynchronousRequest Of hoHttp "www.mywebserver123abc.com" 80 False vReq To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 End Else Begin 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. Send Destroy of hoResp End // To send using SSL/TLS, do this instead. // This sends to https://www.mywebserver123abc.com/rcvFormDataUpload.aspx Get pvComObject of hoReq to vReq Get ComSynchronousRequest Of hoHttp "www.mywebserver123abc.com" 443 True vReq To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 End Else Begin 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. Send Destroy of hoResp End End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.