Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019

curl_mime_encoder (3)


curl_mime_encoder - set a mime part's encoder and content transfer encoding


#include <curl/curl.h>

CURLcode curl_mime_encoder(curl_mimepart * part, const  char  *  encod-


curl_mime_encoder(3)            libcurl Manual            curl_mime_encoder(3)

       curl_mime_encoder  -  set  a  mime  part's encoder and content transfer

       #include <curl/curl.h>

       CURLcode curl_mime_encoder(curl_mimepart * part, const  char  *  encod-

       curl_mime_encoder() requests a mime part's content to be encoded before
       being transmitted.

       part is the part's handle to assign an encoder.  encoding is a  pointer
       to  a zero-terminated encoding scheme. It may be set to NULL to disable
       an encoder previously attached to the part. The encoding scheme storage
       may safely be reused after this function returns.

       Setting a part's encoder twice is valid: only the value set by the last
       call is retained.

       Upon multipart rendering, the part's content is  encoded  according  to
       the  pertaining  scheme  and a corresponding Content-Transfer-Encoding"
       header is added to the part.

       Supported encoding schemes are:
       "binary": the data is left unchanged, the header is added.
       "8bit": header added, no data change.
       "7bit": the data is unchanged, but is each byte  is  checked  to  be  a
       7-bit value; if not, a read error occurs.
       "base64": Data is converted to base64 encoding, then split in CRLF-ter-
       minated lines of at most 76 characters.
       "quoted-printable": data is encoded in quoted  printable  lines  of  at
       most  76  characters. Since the resulting size of the final data cannot
       be determined prior to  reading  the  original  data,  it  is  left  as
       unknown,  causing  chunked  transfer in HTTP. For the same reason, this
       encoder may not be used with IMAP. This encoder targets text data  that
       is mostly ASCII and should not be used with other types of data.

       If the original data is already encoded in such a scheme, a custom Con-
       tent-Transfer-Encoding header should be added with  curl_mime_headers()
       instead of setting a part encoder.

       Encoding  should  not  be  applied  to multiparts, thus the use of this
       function on a  part  with  content  set  with  curl_mime_subparts()  is
       strongly discouraged.

       As  long  as  at  least  one of HTTP, SMTP or IMAP is enabled. Added in

       CURLE_OK or a CURL error code upon failure.

        curl_mime *mime;
        curl_mimepart *part;

        /* create a mime handle */
        mime = curl_mime_init(easy);

        /* add a part */
        part = curl_mime_addpart(mime);

        /* send a file */
        curl_mime_filedata(part, "image.png");

        /* encode file data in base64 for transfer */
        curl_mime_encoder(part, "base64");

       See attributes(7) for descriptions of the following attributes:

       |Availability   | web/curl         |
       |Stability      | Uncommitted      |
       curl_mime_addpart(3), curl_mime_headers(3), curl_mime_subparts(3)

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source   was    downloaded    from     https://github.com/curl/curl/ar-

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.

libcurl 7.56.0                  22 August 2017            curl_mime_encoder(3)