2017-09-06 00:11:59 +08:00
|
|
|
.\" **************************************************************************
|
|
|
|
.\" * _ _ ____ _
|
|
|
|
.\" * Project ___| | | | _ \| |
|
|
|
|
.\" * / __| | | | |_) | |
|
|
|
|
.\" * | (__| |_| | _ <| |___
|
|
|
|
.\" * \___|\___/|_| \_\_____|
|
|
|
|
.\" *
|
2021-10-25 14:54:08 +08:00
|
|
|
.\" * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
|
2017-09-06 00:11:59 +08:00
|
|
|
.\" *
|
|
|
|
.\" * This software is licensed as described in the file COPYING, which
|
|
|
|
.\" * you should have received as part of this distribution. The terms
|
2020-11-04 21:02:01 +08:00
|
|
|
.\" * are also available at https://curl.se/docs/copyright.html.
|
2017-09-06 00:11:59 +08:00
|
|
|
.\" *
|
|
|
|
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
|
|
.\" * copies of the Software, and permit persons to whom the Software is
|
|
|
|
.\" * furnished to do so, under the terms of the COPYING file.
|
|
|
|
.\" *
|
|
|
|
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
.\" * KIND, either express or implied.
|
|
|
|
.\" *
|
|
|
|
.\" * SPDX-License-Identifier: curl
|
2022-05-17 17:16:50 +08:00
|
|
|
.\" *
|
2017-09-06 00:11:59 +08:00
|
|
|
.\" **************************************************************************
|
|
|
|
.TH curl_mime_encoder 3 "22 August 2017" "libcurl 7.56.0" "libcurl Manual"
|
|
|
|
.SH NAME
|
|
|
|
curl_mime_encoder - set a mime part's encoder and content transfer encoding
|
|
|
|
.SH SYNOPSIS
|
2021-11-26 21:20:18 +08:00
|
|
|
.nf
|
|
|
|
#include <curl/curl.h>
|
|
|
|
|
|
|
|
CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding);
|
|
|
|
.fi
|
2017-09-06 00:11:59 +08:00
|
|
|
.SH DESCRIPTION
|
|
|
|
curl_mime_encoder() requests a mime part's content to be encoded before being
|
|
|
|
transmitted.
|
|
|
|
|
|
|
|
\fIpart\fP is the part's handle to assign an encoder.
|
2020-06-25 17:38:25 +08:00
|
|
|
\fIencoding\fP is a pointer to a null-terminated encoding scheme. It may be
|
2017-09-06 00:11:59 +08:00
|
|
|
set to NULL to disable an encoder previously attached to the part. The encoding
|
|
|
|
scheme storage may safely be reused after this function returns.
|
|
|
|
|
2022-05-17 02:32:38 +08:00
|
|
|
Setting a part's encoder multiple times is valid: only the value set by the
|
|
|
|
last call is retained.
|
2017-09-06 00:11:59 +08:00
|
|
|
|
|
|
|
Upon multipart rendering, the part's content is encoded according to the
|
2021-10-25 14:54:08 +08:00
|
|
|
pertaining scheme and a corresponding \fI"Content-Transfer-Encoding"\fP header
|
2017-09-06 00:11:59 +08:00
|
|
|
is added to the part.
|
|
|
|
|
|
|
|
Supported encoding schemes are:
|
|
|
|
.br
|
|
|
|
"\fIbinary\fP": the data is left unchanged, the header is added.
|
|
|
|
.br
|
|
|
|
"\fI8bit\fP": header added, no data change.
|
|
|
|
.br
|
|
|
|
"\fI7bit\fP": the data is unchanged, but is each byte is checked
|
|
|
|
to be a 7-bit value; if not, a read error occurs.
|
|
|
|
.br
|
|
|
|
"\fIbase64\fP": Data is converted to base64 encoding, then split in
|
|
|
|
CRLF-terminated lines of at most 76 characters.
|
|
|
|
.br
|
|
|
|
"\fIquoted-printable\fP": 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
|
|
|
|
\fIContent-Transfer-Encoding\fP header should be added with
|
2022-09-21 05:30:19 +08:00
|
|
|
\fIcurl_mime_headers\fP() instead of setting a part encoder.
|
2017-09-06 00:11:59 +08:00
|
|
|
|
|
|
|
Encoding should not be applied to multiparts, thus the use of this
|
|
|
|
function on a part with content set with \fIcurl_mime_subparts\fP() is
|
|
|
|
strongly discouraged.
|
|
|
|
.SH EXAMPLE
|
|
|
|
.nf
|
|
|
|
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");
|
|
|
|
.fi
|
2021-10-25 14:54:08 +08:00
|
|
|
.SH AVAILABILITY
|
|
|
|
As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
|
|
|
|
.SH RETURN VALUE
|
|
|
|
CURLE_OK or a CURL error code upon failure.
|
2017-09-06 00:11:59 +08:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR curl_mime_addpart "(3),"
|
|
|
|
.BR curl_mime_headers "(3),"
|
|
|
|
.BR curl_mime_subparts "(3)"
|