PureBasic
PureBasic
The MIME Content-Type Header Field
See more MIME Examples
Explains the ContentType property and the Content-Type header field including the various attributes that may be included.Chilkat PureBasic Downloads
IncludeFile "CkMime.pb"
Procedure ChilkatExample()
success.i = 0
; Every part in a MIME messsage should include a Content-Type header field.
; The Content-Type indicates the type of content contained in the MIME part.
; For example: text/plain, image/jpeg, application/pdf, application/json, multipart/mixed, etc.
; Multipart content types are those where the MIME part's body is composed of N inner MIME messages,
; separated by a boundary string.
; This is how MIME gets a nested, tree-like structure. The most common multipart MIME types
; are (for email related MIME) multipart/mixed, multipart/alternative, and multipart/related,
; and for HTTP related MIME, it is multipart/form-data.
mime.i = CkMime::ckCreate()
If mime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; The Content-Type header field can be set or modified in two ways.
; 1) By setting the ContentType, Micalg, Name, Charset, Boundary, or Protocol properties.
; Setting the ContentType property sets the primary value (such as "text/plain") of the header field.
; Each of the other properties listed above will replace or add a particular attribute value.
; 2) By setting the entire contents of the ContentType header with the SetHeaderField method.
; This updates each of the Content-Type related properties.
; For example:
CkMime::setCkContentType(mime, "text/plain")
CkMime::setCkCharset(mime, "utf-8")
; The Content-Type header field contains this:
; Content-Type: text/plain; charset=utf-8
Debug CkMime::ckGetEntireHead(mime)
Debug "-"
CkMime::ckSetHeaderField(mime,"Content-Type","image/jpeg; name=" + Chr(34) + "kitty.jpg" + Chr(34))
; The Content-Type header field now contains this:
; Content-Type: image/jpeg; name="kitty.jpg"
Debug CkMime::ckGetEntireHead(mime)
Debug "-"
; Notice how the properties have been updated:
Debug "ContentType property: " + CkMime::ckContentType(mime)
Debug "Charset property: " + CkMime::ckCharset(mime)
Debug "Name property: " + CkMime::ckName(mime)
Debug "-"
; To change a particular attribute value, set the property.
CkMime::setCkName(mime, "doggy.jpg")
Debug CkMime::ckGetEntireHead(mime)
Debug "-"
; To remove an attribute value from the Content-Type header,
; set the property to an empty string.
CkMime::setCkName(mime, "")
Debug CkMime::ckGetEntireHead(mime)
Debug "-"
CkMime::ckDispose(mime)
ProcedureReturn
EndProcedure