Skip to content
Snippets Groups Projects
Commit 0452fd86 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Georg Huettenegger's updates

parent 613eafaf
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
.\" nroff -man [file]
.\" $Id$
.\"
.TH curl_formadd 3 "19 August 2001" "libcurl 7.9" "libcurl Manual"
.TH curl_formadd 3 "27 August 2001" "libcurl 7.9" "libcurl Manual"
.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
.SH SYNOPSIS
......@@ -24,21 +24,22 @@ After \fIlastitem\fP follow the real arguments that constitute the
new section (if the following description confuses you jump directly
to the examples):
The first is always CURLFORM_COPYNAME followed by a string used for
the name of the section.
CURLFORM_COPYNAME or CURLFORM_PTRNAME followed by a string is used for
the name of the section. Optionally one may use CURLFORM_NAMELENGTH to
specify the length of the name (allowing null characters within the name).
Afterwards one may use one of three arguments: CURLFORM_COPYCONTENTS,
CURLFORM_PTRCONTENTS, or CURLFORM_FILE. followed by a char or void
The three options for providing values are: CURLFORM_COPYCONTENTS,
CURLFORM_PTRCONTENTS, or CURLFORM_FILE, followed by a char or void
pointer (allowed for PTRCONTENTS).
The next argument may be CURLFORM_CONTENTTYPE if the
Other arguments may be CURLFORM_CONTENTTYPE if the
user wishes to specify one (for FILE if no type is given the library
tries to provide the correct one; for CONTENTS no Content-Type is sent
in this case)
For CURLFORM_PTRCONTENTS the user may also add CURLFORM_CONTENTSLENGTH
followed by the length as a long (if not given the library will use
strlen to determine the length; for COPYCONTENTS this is always done).
For CURLFORM_PTRCONTENTS or CURLFORM_COPYNAME the user may also add
CURLFORM_CONTENTSLENGTH followed by the length as a long (if not given
the library will use strlen to determine the length).
For CURLFORM_FILE the user may send multiple files in one section by
providing multiple CURLFORM_FILE arguments each followed by the filename
......@@ -52,13 +53,13 @@ the function itself. You must call \fIcurl_formfree\fP after the form post has
been done to free the resources again.
This function will copy all input data except the data pointed to by
the argument after CURLFORM_PTRCONTENTS and keep its own
version of it allocated until you call \fIcurl_formfree\fP. When
the arguments after CURLFORM_PTRNAME and CURLFORM_PTRCONTENTS and keep
its own version of it allocated until you call \fIcurl_formfree\fP. When
you've passed the pointer to \fIcurl_easy_setopt\fP, you must not free
the list until after you've called \fIcurl_easy_cleanup\fP for the
curl handle. If you provide a pointer as an argument after
CURLFORM_PTRCONTENTS you must ensure that the pointer stays valid
until you call \fIcurl_form_free\fP and \fIcurl_easy_cleanup\fP.
curl handle. If you provide a pointer as an arguments after
CURLFORM_PTRNAME or CURLFORM_PTRCONTENTS you must ensure that the pointer
stays valid until you call \fIcurl_form_free\fP and \fIcurl_easy_cleanup\fP.
See example below.
.SH RETURN VALUE
......@@ -68,6 +69,8 @@ Returns non-zero if an error occurs.
HttpPost* post = NULL;
HttpPost* last = NULL;
char namebuffer[] = "name buffer";
long namelength = strlen(namebuffer);
char buffer[] = "test buffer";
char htmlbuffer[] = "<HTML>test buffer</HTML>";
long htmlbufferlength = strlen(htmlbuffer);
......@@ -84,8 +87,12 @@ Returns non-zero if an error occurs.
CURLFORM_COPYCONTENTS, "<HTML></HTML>",
CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
/* Add name/ptrcontent section */
curl_formadd(&post, &past, CURLFORM_COPYNAME, "name_for_ptrcontent",
curl_formadd(&post, &last, CURLFORM_COPYNAME, "name_for_ptrcontent",
CURLFORM_PTRCONTENTS, buffer, CURLFORM_END);
/* Add ptrname/ptrcontent section */
curl_formadd(&post, &last, CURLFORM_PTRNAME, namebuffer,
CURLFORM_PTRCONTENTS, buffer, CURLFORM_NAMELENGTH,
namelength, CURLFORM_END);
/* Add name/ptrcontent/contenttype section */
curl_formadd(&post, &last, CURLFORM_COPYNAME, "html_code_with_hole",
CURLFORM_PTRCONTENTS, htmlbuffer,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment