From 3c7a80a27533791456cbb8bb7d99eb409375199b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 8 Feb 2001 08:26:54 +0000 Subject: postit.c was added as a HTML form file upload example --- docs/examples/Makefile.am | 2 +- docs/examples/postit.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 docs/examples/postit.c diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index a8cd193ad..f620440c7 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = foreign no-dependencies EXTRA_DIST = - README curlgtk.c sepheaders.c simple.c + README curlgtk.c sepheaders.c simple.c postit.c all: @echo "done" diff --git a/docs/examples/postit.c b/docs/examples/postit.c new file mode 100644 index 000000000..710a14967 --- /dev/null +++ b/docs/examples/postit.c @@ -0,0 +1,68 @@ +/***************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * $Id$ + * + * Example code that uploads a file name 'foo' to a remote script that accepts + * "HTML form based" (as described in RFC1738) uploads using HTTP POST. + * + * The imaginary form we'll fill in looks like: + * + *
+ * Enter file: + * Enter file name: + * + *
+ * + * This exact source code has not been verified to work. + */ + +#include + +#include +#include +#include + +int main(int argc, char **argv) +{ + CURL *curl; + CURLcode res; + + struct HttpPost *formpost=NULL; + struct HttpPost *lastptr=NULL; + + /* Fill in the file upload field */ + curl_formparse("sendfile=@foo", + &formpost, + &lastptr); + + /* Fill in the filename field */ + curl_formparse("filename=foo", + &formpost, + &lastptr); + + + /* Fill in the submit field too, even if this is rarely needed */ + curl_formparse("submit=send", + &formpost, + &lastptr); + + curl = curl_easy_init(); + if(curl) { + /* what URL that receives this POST */ + curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se/examplepost.cgi"); + curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + + /* then cleanup the formpost chain */ + curl_formfree(formpost); + } + return 0; +} -- cgit v1.2.3