gnurl_mime_filedata(3)
π gnurl_mime_filedata(3) π
okay bestie, this oneβs from the libgnurl Manual and itβs all about making a MIME partβs body come from a file. No cap, itβs lowkey iconic.
π NAME π
curl_mime_filedata β set a mime partβs body data from a file contents.
β¨ SYNOPSIS β¨
#include <gnurl/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. Itβs the alternative to curl_mime_data(3) for setting data to a mime part, iykyk.
part is the part youβre assigning contents to.
filename points to the null-terminated fileβs path name. The pointer can be NULL to detach the previous part contents settings. The filename storage can safely be reused after this call.
Side effect alert π¨: the partβs remote file name gets 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 are read during the file transfer in a streaming manner, so huge files can get transferred without using much memory. That therefore requires that the file is kept intact during the entire request. Periodt.
If the file size cannot be determined before actually reading it (such as for a device or named pipe), the whole mime structure containing the part will be transferred as chunks by HTTP and rejected by IMAP. π
Setting a partβs contents twice is valid: only the value set by the last call is retained. Slay.
π AVAILABILITY π
As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
π«Ά RETURN VALUE π«Ά
CURLE_OK or a CURL error code upon failure.
CURLE_READ_ERROR is only an indication that the file is not yet readable: it can be safely ignored at this time, but the file must be made readable before the pertaining easy handle is performed. Donβt forget that part, bestie.
π¦ EXAMPLE π¦
Hereβs the vibe:
curl_mime *mime;
curl_mimepart *part;
/* create a mime handle */
mime = curl_mime_init(easy);
/* 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");
π SEE ALSO π
xoxo, your Unix bestie β libcurl 7.56.0, 22 August 2017, gnurl_mime_filedata(3) π
π¦ where this page comes from
- nixos 26.05: libgnurl 7.72.0
- nixpkgs unstable: libgnurl 7.72.0
- Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms