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) Extract Files from Binary SOAP MTOM MIMEThis example demonstrates how to extract files from a binary SOAP MTOM MIME document.
Use ChilkatAx-win32.pkg Procedure Test Handle hoMime Boolean iSuccess Integer iNumParts Handle hoSbFilename String sName Integer i Variant vMp Handle hoMp Integer iNumReplaced String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatMime)) To hoMime If (Not(IsComObjectCreated(hoMime))) Begin Send CreateComObject of hoMime End // In this example, we have a MIME file containing 8bit (non-encoded) binary data, // and it is what I call "headless". MIME is headless when it omits // the top-level header. The file we have here begins with the first // boundary string. // The structure the MIME to be loaded is: // multipart/mixed (inferred because it is headless) // application/xop+xml // image/jpeg // image/gif // image/gif // Get ComLoadMimeFile Of hoMime "qa_data/mime/headless_binary_soap_mtom_mime.mim" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoMime To sTemp1 Showln sTemp1 Procedure_Return End // The MIME file loaded in this example contains this: // --uuid:e74486f4-52b0-44b6-b829-156810fae20d // Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml" // Content-Transfer-Encoding: binary // Content-ID: <root.message@cxf.apache.org> // // <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body> ... </soap:Body></soap:Envelope> // --uuid:e74486f4-52b0-44b6-b829-156810fae20d // Content-Type: image/jpeg // Content-Transfer-Encoding: binary // Content-ID: <beee83b7-166c-494c-890a-def990e9887b-1496@cxf.apache.org> // Content-Disposition: attachment;name="-2049913191" // // BINARY DATA HERE... // // --uuid:e74486f4-52b0-44b6-b829-156810fae20d // Content-Type: image/gif // Content-Transfer-Encoding: binary // Content-ID: <beee83b7-166c-494c-890a-def990e9887b-1497@cxf.apache.org> // Content-Disposition: attachment;name="-2049913188" // // BINARY DATA HERE... // // --uuid:e74486f4-52b0-44b6-b829-156810fae20d // Content-Type: image/gif // Content-Transfer-Encoding: binary // Content-ID: <beee83b7-166c-494c-890a-def990e9887b-1498@cxf.apache.org> // Content-Disposition: attachment;name="-2049913185" // // BINARY DATA HERE... // // --uuid:e74486f4-52b0-44b6-b829-156810fae20d-- // Get the number of MIME sub-parts. Get ComNumParts Of hoMime To iNumParts // The 1st part at index 0 is the application/xop+xml. We're just going to extract the JPG and GIF image files.. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbFilename If (Not(IsComObjectCreated(hoSbFilename))) Begin Send CreateComObject of hoSbFilename End Move 1 To i While (i < iNumParts) Get ComGetPart Of hoMime i To vMp If (IsComObject(vMp)) Begin Get Create (RefClass(cComChilkatMime)) To hoMp Set pvComObject Of hoMp To vMp End // By looking at the MIME above, the "name" attribute of the Content-Disposition header field seems // to be the only possible name we can use for each image.. Get ComAppend Of hoSbFilename "qa_output/" To iSuccess Get ComGetHeaderFieldAttribute Of hoMp "Content-Disposition" "name" To sName Get ComAppend Of hoSbFilename sName To iSuccess Get ComAppend Of hoSbFilename "." To iSuccess Get ComContentType Of hoMp To sTemp1 Get ComAppend Of hoSbFilename sTemp1 To iSuccess Get ComReplace Of hoSbFilename "image/" "" To iNumReplaced Get ComGetAsString Of hoSbFilename To sTemp1 Get ComSaveBody Of hoMp sTemp1 To iSuccess Get ComGetAsString Of hoSbFilename To sTemp1 Showln "output file: " sTemp1 Send Destroy of hoMp Send ComClear To hoSbFilename Move (i + 1) To i Loop Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.