CURLOPT_UPLOAD(3)
CURLOPT_UPLOAD(3) curl_easy_setopt options CURLOPT_UPLOAD(3)
NAME
CURLOPT_UPLOAD - enable data upload
SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD, long
upload);
DESCRIPTION
The long parameter upload set to 1 tells the library to
prepare for and perform an upload. The CURLOPT_READDATA(3)
and CURLOPT_INFILESIZE(3) or CURLOPT_INFILESIZE_LARGE(3)
options are also interesting for uploads. If the protocol is
HTTP, uploading means using the PUT request unless you tell
libcurl otherwise.
Using PUT with HTTP 1.1 implies the use of a "Expect: 100-
continue" header. You can disable this header with
CURLOPT_HTTPHEADER(3) as usual.
If you use PUT to a HTTP 1.1 server, you can upload data
without knowing the size before starting the transfer if you
use chunked encoding. You enable this by adding a header
like "Transfer-Encoding: chunked" with
CURLOPT_HTTPHEADER(3). With HTTP 1.0 or without chunked
transfer, you must specify the size.
DEFAULT
0, default is download
PROTOCOLS
Most
EXAMPLE
CURL *curl = curl_easy_init();
if(curl) {
/* we want to use our own read function */
curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
/* enable uploading */
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
/* specify target */
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/dir/to/newfile");
/* now specify which pointer to pass to our callback */
curl_easy_setopt(curl, CURLOPT_READDATA, hd_src);
/* Set the size of the file to upload */
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)fsize);
libcurl 7.58.0 Last change: February 03, 2016 1
CURLOPT_UPLOAD(3) curl_easy_setopt options CURLOPT_UPLOAD(3)
/* Now run off and do what you've been told! */
curl_easy_perform(curl);
}
AVAILABILITY
Always
RETURN VALUE
Returns CURLE_OK
SEE ALSO
CURLOPT_PUT(3), CURLOPT_READFUNCTION(3),
CURLOPT_INFILESIZE_LARGE(3),
libcurl 7.58.0 Last change: February 03, 2016 2
Man(1) output converted with
man2html