DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

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