aboutsummaryrefslogtreecommitdiff
path: root/docs/examples
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-05-26 09:00:03 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-05-26 09:00:03 +0000
commit15cd35f67fa76f6d043bdf8e53b64ebb56339d2a (patch)
tree73ad7804681bd6c2e45cbe48679c4bd2a3739c98 /docs/examples
parent459801d6e0e3d829f5c2eefcec189a1842ef7e37 (diff)
added example that makes an upload to a file:// url
Diffstat (limited to 'docs/examples')
-rw-r--r--docs/examples/Makefile.am2
-rw-r--r--docs/examples/fileupload.c65
2 files changed, 66 insertions, 1 deletions
diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am
index e42a9600f..e81e4b840 100644
--- a/docs/examples/Makefile.am
+++ b/docs/examples/Makefile.am
@@ -9,7 +9,7 @@ EXTRA_DIST = README curlgtk.c sepheaders.c simple.c postit2.c \
ftpupload.c httpput.c simplessl.c ftpgetresp.c http-post.c \
post-callback.c multi-app.c multi-double.c multi-single.c \
multi-post.c fopen.c simplepost.c makefile.dj curlx.c https.c \
- multi-debugcallback.c
+ multi-debugcallback.c fileupload.c
all:
@echo "done"
diff --git a/docs/examples/fileupload.c b/docs/examples/fileupload.c
new file mode 100644
index 000000000..315c2a1b1
--- /dev/null
+++ b/docs/examples/fileupload.c
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id$
+ */
+
+#include <stdio.h>
+#include <curl/curl.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+int main(void)
+{
+ CURL *curl;
+ CURLcode res;
+ curl_off_t size;
+ struct stat file_info;
+ double speed_upload, total_time;
+ FILE *fd;
+
+ fd = fopen("debugit", "r"); /* open file to upload */
+ if(!fd) {
+
+ return 1; /* can't continue */
+ }
+
+ stat("debugit", &file_info); /* to get the file size */
+
+ curl = curl_easy_init();
+ if(curl) {
+ /* upload to this place */
+ curl_easy_setopt(curl, CURLOPT_URL,
+ "file:///home/dast/src/curl/debug/new");
+
+ /* tell it to "upload" to the URL */
+ curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
+
+ /* set where to read from (on Windows you need to use READFUNCTION too) */
+ curl_easy_setopt(curl, CURLOPT_READDATA, fd);
+
+ /* and give the size of the upload (optional) */
+ curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
+ (curl_off_t)file_info.st_size);
+
+ /* enable verbose for easier tracing */
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
+
+ res = curl_easy_perform(curl);
+
+ /* now extract transfer info */
+ curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed_upload);
+ curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time);
+
+ fprintf(stderr, "Speed: %.3f bytes/sec during %.3f seconds\n",
+ speed_upload, total_time);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ return 0;
+}