79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" **************************************************************************
 | |
| .\" *                                  _   _ ____  _
 | |
| .\" *  Project                     ___| | | |  _ \| |
 | |
| .\" *                             / __| | | | |_) | |
 | |
| .\" *                            | (__| |_| |  _ <| |___
 | |
| .\" *                             \___|\___/|_| \_\_____|
 | |
| .\" *
 | |
| .\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
 | |
| .\" *
 | |
| .\" * This software is licensed as described in the file COPYING, which
 | |
| .\" * you should have received as part of this distribution. The terms
 | |
| .\" * are also available at http://curl.haxx.se/docs/copyright.html.
 | |
| .\" *
 | |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | |
| .\" * copies of the Software, and permit persons to whom the Software is
 | |
| .\" * furnished to do so, under the terms of the COPYING file.
 | |
| .\" *
 | |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
| .\" * KIND, either express or implied.
 | |
| .\" *
 | |
| .\" **************************************************************************
 | |
| .\"
 | |
| .TH CURLOPT_UPLOAD 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
 | |
| .SH NAME
 | |
| CURLOPT_UPLOAD \- enable data upload
 | |
| .SH SYNOPSIS
 | |
| #include <curl/curl.h>
 | |
| 
 | |
| CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD, long upload);
 | |
| .SH DESCRIPTION
 | |
| The long parameter \fIupload\fP set to 1 tells the library to prepare for and
 | |
| perform an upload. The \fICURLOPT_READDATA(3)\fP and
 | |
| \fICURLOPT_INFILESIZE(3)\fP or \fICURLOPT_INFILESIZE_LARGE(3)\fP 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 \fICURLOPT_HTTPHEADER(3)\fP 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
 | |
| \fICURLOPT_HTTPHEADER(3)\fP. With HTTP 1.0 or without chunked transfer, you
 | |
| must specify the size.
 | |
| .SH DEFAULT
 | |
| 0, default is download
 | |
| .SH PROTOCOLS
 | |
| Most
 | |
| .SH EXAMPLE
 | |
| .nf
 | |
| 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);
 | |
| 
 | |
|   /* Now run off and do what you've been told! */
 | |
|   curl_easy_perform(curl);
 | |
| }
 | |
| .fi
 | |
| .SH AVAILABILITY
 | |
| Always
 | |
| .SH RETURN VALUE
 | |
| Returns CURLE_OK
 | |
| .SH "SEE ALSO"
 | |
| .BR CURLOPT_PUT "(3), " CURLOPT_READFUNCTION "(3), "
 | |
| .BR CURLOPT_INFILESIZE_LARGE "(3), "
 | 
