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) Parse MIME Header FieldsDemonstrates how to parse MIME header fields, including Content-Type, Content-Disposition, and Content-Transfer-Encoding. This example uses a MIME test file located at http://www.chilkatsoft.com/testData/sampleMime2.txt. It contains the following MIME: Content-Type: multipart/mixed; boundary="------------080707010302060306060800"; This is a multi-part message in MIME format. --------------080707010302060306060800 Content-Type: text/plain Content-Transfer-Encoding: 7bit This is the plain-text body. --------------080707010302060306060800 Content-Disposition: attachment; filename="starfish.gif"; Content-Transfer-Encoding: base64 Content-Type: image/gif; name="starfish.gif"; R0lGODlhIAAgAPcAAP///+/v7/f39+/n5/fv7//39/fn597OzufW1tbGxs69vffe3u/W1salpZQQ EIQYEJwQCJQYCJwYCM6clL2Ee5wpGIwhEK0YANatpdalnHMYCKUhCJQYAKUYAM6Ec5QhCJwhCPfW zu/Oxta1rb17a6UhAK0hAPe9rb2Ec7V7a71rUpwpCL0xCJwhAOfOxta9tcatpdallM6cjMaUhK1C IZwxELU5EK0xCLUxCN61pcacjK1rUrVaOaVKKZxCIZwxCKUxCL05CLUxAM6llO+1nMZzUr1rSrVS KaVCGK1CGLVCEJQxCK05CLU5CIwpAKUxAK0xAM69tffWxrVrSrVaMbVKGMZKEL1CCLU5AP/v597O xufGtcallNaljLWEa96ce9aUc717Wq1aMcZjMbVaKbVSIa1KGL1SGJw5CK1CCLVCCMZKCM5KCMZC APfn3tbGvc57Ss5aGMZSENZaEL1KCM5SCLVCAMZKAPfezvfOte/GrdatlN6cc9aEUr1rOc5jIdZj GL1SEM5aELVKCMZSCNZaCL1KAOfOvc57Qs5jGNZjEM5aCMZSAN5aAO/OtefGrcZjGM5jEN5rELVS CMZaCN5jCOdrCM5aAO/Gpc5rGMZjENZrEN5jAOdrAOfe1t6MQtZ7Kd57IdZzGM5rEMZjCNZrCM5j ANbOxu/Wve+9jPe9hO+1e+etc85zGO+EGMZrENZzEM5rCN5zCO97COdzAO/n3u+1c+ecSt6UQs57 Ie+MIdZ7GOeEGM5zEO+EELVjCOd7CO+ECOd7AO/Ope+tWuelUu+UKeeMGOeEEO+MEOeECO+EAO/G jO+cKfeUEO+MCO+tSuecMeeUGN6MEOeMCO+UCO+tQuelOe+lMe+lKe+cGOeUEO+cEOeUCN6MAO+U AOe9c/e1Oe+lId6UEO+cCPe9Qve1Me+lEOecCO+lCOe1Su+1OeelGO+tGPetCPetAO+9Qve1GO+1 EPe9CPe9APf37+fv5/f//+/v9/fv9+fe5+/e5869xufW3t7GzgAAACwAAAAAIAAgAAAI/wABCBxI sKDBgwgTFgCwMKHDhwyHYWoIsWIBZsdyHaoIcaGbaNQ0ZeBYEROvV0pmCCDp8B4rZaOUcGHpcIEx aqPMYLjHMcsCAwgxkRv3q8wLnhAdfWpmDRwqAgQFEEvHLlCZNxwfpVmkDJ04dczc3LsXQtq4XWh8 aGH48F49FDUC9UInT941W6luCUOWyQmSLST3eUnChNS4c9SooQuGDNkrIIrA1MqXr0A+AyFC4Kln kMAQKljotJJGDZklS9PkyEHGLZu1ctbCmWvXThurfAbvHSii5kegxpYqtRpEKFnid/TSneu2LRYh P/0Q1tJRgYOZV71UL5LEK1KiV68yVf+xgaOKmAZICd5bmA8FEyZQlMjRRAhQGQv4QQSJL8ZLFHwP 6aFIJXNIEkggcgQhwYIlKEFFGDKcEgBCBVCkByC0IAMJGnSAYsUNEmzAgw4HBJBeQisZcAswjqGh wQeBKGIFFD0ocCJE9diyjTKRLPHBAx/cEAcdgxgx4Vg3HnSPKs4E00sNEYDwgQksQDLJIohMSJIj ugSTCRA/ILFDCjTckUkrpYiCAEluYCMLJCsoMQUM9gjQRSSL7CLJJjmQxMw3kQChxA78IFULHIK0 MgonXyR5UAHWVBKIEmEcUJAIYxgSSSF94AZRPrgsQgUF0RmUgWpy/LFmRYdMkACAANwrWA8cbAhi RZ8cjRWro0QEEsQVGTiKkLAM5QNGFWrAQFNLBIzABQPLRktQQAA7 --------------080707010302060306060800--
Use ChilkatAx-win32.pkg Procedure Test Handle hoMime Boolean iSuccess Variant vPart2 Handle hoPart2 String sFilename String sName 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 // Load the sampleMime2.txt file into the MIME object. // (This file is available at http://www.chilkatsoft.com/testData/sampleMime2.txt ) Get ComLoadMimeFile Of hoMime "sampleMime2.txt" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoMime To sTemp1 Showln sTemp1 Procedure_Return End // The GIF image is the 2nd sub-part located directly under the // top-level MIME node. Indexing begins at 0, therefore the 2nd // sub-part is at index 1. Get ComGetPart Of hoMime 1 To vPart2 If (IsComObject(vPart2)) Begin Get Create (RefClass(cComChilkatMime)) To hoPart2 Set pvComObject Of hoPart2 To vPart2 End // ------------------------------- // Content-Disposition // ------------------------------- // In this example, the Content-Disposition header field // contains this value: // attachment; filename="starfish.gif" // To get the "filename", call GetHeaderFieldAttribute // Header field names and attribute names are case insensitive. Get ComGetHeaderFieldAttribute Of hoPart2 "Content-Disposition" "filename" To sFilename Showln "Filename: " sFilename // Because the "filename" is so often accessed, it is also available // by accessing the "Filename" property: Get ComFilename Of hoPart2 To sTemp1 Showln "Filename: " sTemp1 // The disposition (without attributes) which in this case // is the string "attachment" is accessed via the Disposition property: Get ComDisposition Of hoPart2 To sTemp1 Showln "Disposition: " sTemp1 // To get the full value of the Content-Disposition header field, // call GetHeaderField. Get ComGetHeaderField Of hoPart2 "Content-Disposition" To sTemp1 Showln "Content-Disposition: " sTemp1 // ------------------------------- // Content-Type // ------------------------------- // In this example, the Content-Type header field // contains this value: // image/gif; name="starfish.gif" // To get the "name", call GetHeaderFieldAttribute Get ComGetHeaderFieldAttribute Of hoPart2 "Content-Type" "name" To sName Showln "Content-Type name: " sName // Because the "name" is so often accessed, it is also available // by accessing the "Name" property: Get ComName Of hoPart2 To sTemp1 Showln "Content-Type name: " sTemp1 // The content-type without attributes is available in the // ContentType property: Get ComContentType Of hoPart2 To sTemp1 Showln "Content-Type: " sTemp1 // To get the full value of the Content-Type header field, // call GetHeaderField. Get ComGetHeaderField Of hoPart2 "Content-Type" To sTemp1 Showln "Content-Type: " sTemp1 // ------------------------------- // Content-Transfer-Encoding // ------------------------------- // The Encoding property contains the value of the // Content-Transfer-Encoding property. // Calling GetHeaderField("Content-Transfer-Encoding") is // equivalent to accessing the Encoding property: Get ComEncoding Of hoPart2 To sTemp1 Showln "Content-Transfer-Encoding: " sTemp1 Get ComGetHeaderField Of hoPart2 "Content-Transfer-Encoding" To sTemp1 Showln "Content-Transfer-Encoding: " sTemp1 Send Destroy of hoPart2 Showln "Finished." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.