curl_mime_filedata(3) Library Functions Manual curl_mime_filedata(3)
NAME
curl_mime_filedata - set a mime part's body data from a file contents
SYNOPSIS
#include <curl/curl.h>
CURLcode curl_mime_filedata(curl_mimepart *part,
const char *filename);
DESCRIPTION
curl_mime_filedata(3) sets a mime part's body content from the named
file's contents. This is an alternative to curl_mime_data(3) for setting
data to a mime part.
part is the part's to assign contents to.
filename points to the null-terminated file's path name. The pointer can
be NULL to detach the previous part contents settings. Filename storage
can be safely be reused after this call.
As a side effect, the part's remote filename is set to the base name of
the given filename if it is a valid named file. This can be undone or
overridden by a subsequent call to curl_mime_filename(3).
The contents of the file is read during the file transfer in a streaming
manner to allow huge files to get transferred without using much memory.
It therefore requires that the file is kept intact during the entire re-
quest.
If the file size cannot be determined before actually reading it (such
as for a character device or named pipe), the whole mime structure con-
taining the part is transferred using chunks by HTTP but is rejected by
IMAP.
Setting a part's contents multiple times is valid: only the value set by
the last call is retained.
PROTOCOLS
This functionality affects http, imap and smtp
EXAMPLE
int main(void)
{
curl_mime *mime;
curl_mimepart *part;
CURL *curl = curl_easy_init();
if(curl) {
/* create a mime handle */
mime = curl_mime_init(curl);
/* add a part */
part = curl_mime_addpart(mime);
/* send data from this file */
curl_mime_filedata(part, "image.png");
/* set name */
curl_mime_name(part, "data");
}
}
AVAILABILITY
Added in curl 7.56.0
RETURN VALUE
This function returns a CURLcode indicating success or error.
CURLE_OK (0) means everything was OK, non-zero means an error occurred,
see libcurl-errors(3). If CURLOPT_ERRORBUFFER(3) was set with
curl_easy_setopt(3) there can be an error message stored in the error
buffer when non-zero is returned.
CURLE_READ_ERROR is only an indication that the file is not yet read-
able: it can be safely ignored at this time, but the file must be made
readable before the pertaining easy handle is performed.
SEE ALSO
curl_mime_addpart(3), curl_mime_data(3), curl_mime_filename(3),
curl_mime_name(3)
libcurl 2026-07-12 curl_mime_filedata(3)
Generated by dwww version 1.16 on Sat Oct 3 05:06:55 CEST 2026.