xref: /aosp_15_r20/external/curl/docs/libcurl/curl_mime_data.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: curl_mime_data
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerSee-also:
8*6236dae4SAndroid Build Coastguard Worker  - curl_mime_addpart (3)
9*6236dae4SAndroid Build Coastguard Worker  - curl_mime_data_cb (3)
10*6236dae4SAndroid Build Coastguard Worker  - curl_mime_name (3)
11*6236dae4SAndroid Build Coastguard Worker  - curl_mime_type (3)
12*6236dae4SAndroid Build Coastguard WorkerProtocol:
13*6236dae4SAndroid Build Coastguard Worker  - HTTP
14*6236dae4SAndroid Build Coastguard Worker  - IMAP
15*6236dae4SAndroid Build Coastguard Worker  - SMTP
16*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.56.0
17*6236dae4SAndroid Build Coastguard Worker---
18*6236dae4SAndroid Build Coastguard Worker
19*6236dae4SAndroid Build Coastguard Worker# NAME
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard Workercurl_mime_data - set a mime part's body data from memory
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
24*6236dae4SAndroid Build Coastguard Worker
25*6236dae4SAndroid Build Coastguard Worker~~~c
26*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
27*6236dae4SAndroid Build Coastguard Worker
28*6236dae4SAndroid Build Coastguard WorkerCURLcode curl_mime_data(curl_mimepart *part, const char *data,
29*6236dae4SAndroid Build Coastguard Worker                        size_t datasize);
30*6236dae4SAndroid Build Coastguard Worker~~~
31*6236dae4SAndroid Build Coastguard Worker
32*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard Workercurl_mime_data(3) sets a mime part's body content from memory data.
35*6236dae4SAndroid Build Coastguard Worker
36*6236dae4SAndroid Build Coastguard Worker*part* is the mime part to assign contents to, created with
37*6236dae4SAndroid Build Coastguard Workercurl_mime_addpart(3).
38*6236dae4SAndroid Build Coastguard Worker
39*6236dae4SAndroid Build Coastguard Worker*data* points to the data that gets copied by this function. The storage
40*6236dae4SAndroid Build Coastguard Workermay safely be reused after the call.
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard Worker*datasize* is the number of bytes *data* points to. It can be set to
43*6236dae4SAndroid Build Coastguard Worker*CURL_ZERO_TERMINATED* to indicate *data* is a null-terminated
44*6236dae4SAndroid Build Coastguard Workercharacter string.
45*6236dae4SAndroid Build Coastguard Worker
46*6236dae4SAndroid Build Coastguard WorkerSetting a part's contents multiple times is valid: only the value set by the
47*6236dae4SAndroid Build Coastguard Workerlast call is retained. It is possible to unassign part's contents by setting
48*6236dae4SAndroid Build Coastguard Worker*data* to NULL.
49*6236dae4SAndroid Build Coastguard Worker
50*6236dae4SAndroid Build Coastguard WorkerSetting large data is memory consuming: one might consider using
51*6236dae4SAndroid Build Coastguard Workercurl_mime_data_cb(3) in such a case.
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
54*6236dae4SAndroid Build Coastguard Worker
55*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard Worker~~~c
58*6236dae4SAndroid Build Coastguard Workerint main(void)
59*6236dae4SAndroid Build Coastguard Worker{
60*6236dae4SAndroid Build Coastguard Worker  curl_mime *mime;
61*6236dae4SAndroid Build Coastguard Worker  curl_mimepart *part;
62*6236dae4SAndroid Build Coastguard Worker
63*6236dae4SAndroid Build Coastguard Worker  CURL *curl = curl_easy_init();
64*6236dae4SAndroid Build Coastguard Worker  if(curl) {
65*6236dae4SAndroid Build Coastguard Worker    /* create a mime handle */
66*6236dae4SAndroid Build Coastguard Worker    mime = curl_mime_init(curl);
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard Worker    /* add a part */
69*6236dae4SAndroid Build Coastguard Worker    part = curl_mime_addpart(mime);
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard Worker    /* add data to the part  */
72*6236dae4SAndroid Build Coastguard Worker    curl_mime_data(part, "raw contents to send", CURL_ZERO_TERMINATED);
73*6236dae4SAndroid Build Coastguard Worker  }
74*6236dae4SAndroid Build Coastguard Worker}
75*6236dae4SAndroid Build Coastguard Worker~~~
76*6236dae4SAndroid Build Coastguard Worker
77*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
78*6236dae4SAndroid Build Coastguard Worker
79*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
80*6236dae4SAndroid Build Coastguard Worker
81*6236dae4SAndroid Build Coastguard WorkerCURLE_OK or a CURL error code upon failure.
82