Sample code for 30+ languages & platforms
PureBasic

MIME Content-Disposition Header Field

See more MIME Examples

Explains the Content-Disposition header field and the properties used for setting or updating.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMime.pb"

Procedure ChilkatExample()

    success.i = 0

    ; The Content-Disposition header field provides a suggestion to the receiver for how the content is to be processed.
    ; The standard dispositions are "inline" and "attachment".  

    ; A disposition of "attachment" indicates the content is something to be saved to a file and not processed (such as rendering for viewing inline).
    ; A disposition of "inline" indicates the content should be processed (displayed) inline with the other parts of the MIME message.

    ; For example, an email client could handle a JPG image based on the disposition.  If the disposition is "attachment",
    ; the email client (such as Thunderbird, GMail, or Outlook) might simply list the JPG image as one of the email's attachments,
    ; but won't display the JPG image.  If the disposition is "inline", the email client might display the JPG image, but not list
    ; it as an attachment.

    ; The Content-Disposition header field can also include a "filename" attribute.  This is the suggested default filename if the content
    ; is to be saved to a file.

    mime.i = CkMime::ckCreate()
    If mime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; The Content-Disposition header field can be set or modified in two ways.
    ; 1) By setting the Disposition and Filename properties.

    ; 2) By setting the entire contents of the Content-Disposition header with the SetHeaderField method.
    ;    Setting the Content-Disposition header automatically updates the Disposition and Filename properties.

    ; For example:
    CkMime::setCkDisposition(mime, "attachment")
    CkMime::setCkFilename(mime, "ghost.jpg")

    ; The Content-Disposition header field contains this:
    ;     Content-Disposition: attachment; filename="ghost.jpg"
    Debug CkMime::ckGetEntireHead(mime)
    Debug "-"

    ; If we set the entire header field..
    CkMime::ckSetHeaderField(mime,"Content-Disposition","attachment; filename=" + Chr(34) + "zombie.jpg" + Chr(34))
    ; The Content-Disposition header field now contains this:
    ;     Content-Disposition: attachment; filename="zombie.jpg"
    Debug CkMime::ckGetEntireHead(mime)
    Debug "-"

    ; Notice how the Filename property has been updated
    Debug "Filename property: " + CkMime::ckFilename(mime)
    Debug "-"

    ; To change a particular attribute value, set the property.
    CkMime::setCkFilename(mime, "skeleton.jpg")
    Debug CkMime::ckGetEntireHead(mime)
    Debug "-"

    ; To remove the filename from the Content-Disposition header,
    ; set the property to an empty string.
    CkMime::setCkFilename(mime, "")
    Debug CkMime::ckGetEntireHead(mime)
    Debug "-"


    CkMime::ckDispose(mime)


    ProcedureReturn
EndProcedure