测试环境搭建, 使用 wamp server (windows下的 apache+MySQL+php)

libcurl vc6 工程代码  下载地址:  http://download.csdn.net/detail/mtour/8060775

处理上传文件 php  代码

  1. <?php
  2. if ($_FILES["file"]["error"] > 0)
  3. {
  4. echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
  5. }
  6. else
  7. {
  8. echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  9. echo "Type: " . $_FILES["file"]["type"] . "<br />";
  10. echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  11. echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
  12. if (file_exists("./" . $_FILES["file"]["name"]))
  13. {
  14. echo $_FILES["file"]["name"] . " already exists. ";
  15. }
  16. else
  17. {
  18. move_uploaded_file($_FILES["file"]["tmp_name"],
  19. "./" . $_FILES["file"]["name"]);
  20. echo "Stored in: " . "/" . $_FILES["file"]["name"];
  21. }
  22. }
  23. ?>

libcurl  代码

    1. // libCur1.cpp : Defines the entry point for the console application.
    2. //
    3. #include "stdafx.h"
    4. #include <stdio.h>
    5. #include "curl/curl.h"
    6. #define MAX_BUFF_LEN 1048576 /*1M*/
    7. #define POST_URL "http://10.10.1.4/d/upload.php"
    8. int get_file_size(char *filename)
    9. {
    10. FILE* fp = NULL;
    11. int nFileLen = 0;
    12. fp = fopen(filename, "rb");
    13. if (fp == NULL)
    14. {
    15. return 0;
    16. }
    17. fseek(fp,0,SEEK_END); //定位到文件末
    18. nFileLen = ftell(fp); //文件长度
    19. return nFileLen;
    20. }
    21. int http_post_file(const char *url, const char *filename)
    22. {
    23. CURL *curl = NULL;
    24. CURLcode res;
    25. struct curl_httppost *post=NULL;
    26. struct curl_httppost *last=NULL;
    27. struct curl_slist *headerlist=NULL;
    28. if(filename == NULL || url == NULL)
    29. return -1;
    30. printf("URL: %s\n", url);
    31. printf("filename: %s\n", filename);
    32. /* Add simple file section */
    33. if( curl_formadd(&post, &last, CURLFORM_COPYNAME, "file",
    34. CURLFORM_FILE, filename, CURLFORM_END) != 0)
    35. {
    36. fprintf(stderr, "curl_formadd error.\n");
    37. return -1;
    38. }
    39. /* Fill in the submit field too, even if this is rarely needed */
    40. curl_formadd(&post, &last,
    41. CURLFORM_COPYNAME, "submit",
    42. CURLFORM_COPYCONTENTS, "OK",
    43. CURLFORM_END);
    44. //curl_global_init(CURL_GLOBAL_ALL);
    45. curl = curl_easy_init();
    46. if(curl == NULL)
    47. {
    48. fprintf(stderr, "curl_easy_init() error.\n");
    49. curl_formfree(post);
    50. return -1;
    51. }
    52. curl_easy_setopt(curl, CURLOPT_HEADER, 0);
    53. curl_easy_setopt(curl, CURLOPT_URL, url); /*Set URL*/
    54. curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
    55. int timeout = 5;
    56. curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
    57. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
    58. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1);
    59. res = curl_easy_perform(curl);
    60. if(res != CURLE_OK)
    61. {
    62. fprintf(stderr, "curl_easy_perform[%d] error.\n", res);
    63. curl_formfree(post);
    64. return -1;
    65. }
    66. curl_easy_cleanup(curl);
    67. return 0;
    68. }
    69. int main()
    70. {
    71. char sFilePath[128]="d:\\20130828131421113.jpg";
    72. //Check File Size
    73. if(get_file_size(sFilePath) >= MAX_BUFF_LEN)
    74. {
    75. fprintf(stderr, "File Size is Big!\n");
    76. return -1;
    77. }
    78. //POST File
    79. http_post_file(POST_URL, sFilePath);
    80. getchar();
    81. return 0;
    82. }

libcurl 上传文件至 web服务器的更多相关文章

  1. Java客户端通过Http发送POST请求上传文件到web服务器

    http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html 1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.n ...

  2. C# 上传文件至远程服务器

    C# 上传文件至远程服务器(适用于桌面程序及web程序) 2009-12-30 19:21:28|  分类: C#|举报|字号 订阅     最近几天在玩桌面程序,在这里跟大家共享下如何将本地文件上传 ...

  3. ASP.NET上传文件到远程服务器(HttpWebRequest)

    /// <summary> /// 文件上传至远程服务器 /// </summary> /// <param name="url">远程服务地址 ...

  4. libcurl 上传文件,不管文件什么格式 libcurl开发指南

    libcurl 上传文件,不管文件什么格式 libcurl开发指南 上传文件 https://curl.haxx.se/download.html curl命令参数很多,这里只列出我曾经用过.特别是在 ...

  5. SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案

    SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOEx ...

  6. asp.net 服务器 上传文件到 FTP服务器

    private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...

  7. 在C#客户端用HTTP上传文件到Java服务器

    在C#客户端用HTTP上传文件到Java服务器  来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...

  8. .Net 上传文件到ftp服务器和下载文件

    突然发现又很久没有写博客了,想起哎呦,还是写一篇博客记录一下吧,虽然自己还是那个渣渣猿. 最近在做上传文件的功能,上传到ftp文件服务器有利于管理上传文件. 前面的博客有写到layui如何上传文件,然 ...

  9. java 上传文件到 ftp 服务器

    1.  java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...

随机推荐

  1. 网站及监控利器 Pandora FMS使用体验

    Pandora FMS 是一个 开源的应用程序 ,用来监测网站的各种活动,它可以收到实时的监测报告,并发送到你指定的邮箱,也可以通过e-mail, SMS 发送. 650) this.width=65 ...

  2. Callback<> and Bind()

    Callback<> and Bind() Introduction The templated base::Callback<> class is a generalized ...

  3. Ubunut PPA源概述

    Ubuntu 自带的“软件”应用,可以安装海量软件,既包括发行者支持的软件.社区支持的软件,也包括专有驱动和版权软件.有时,我们需要的软件通过这些渠道仍然无法找到.这时,可以到 PPA 软件源中查找. ...

  4. Python正则表达式初识(四)

    今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下. 特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种 ...

  5. CCF模拟题 窗口

    窗口 时间限制: 1.0s 内存限制: 256.0MB   问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的 ...

  6. codevs——T1006 等差数列

    http://codevs.cn/problem/1006/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  7. codevs 1019 集合论与图论

    1019 集合论与图论  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 集合论与图论对于小松来说 ...

  8. Gonet2 游戏server框架解析之Agent(3)

    客户端消息在Agent中的预处理流程. Agent定义好的三种请求: //api.go var RCode = map[int16]string{ 0: "heart_beat_req&qu ...

  9. android ActionBar的使用

    Action Bar主要功能包括:   1. 显示选项菜单   2. 提供标签页的切换方式的导航功能,能够切换多个fragment.    3.  提供下拉的导航条目.   4. 提供交互式活动视图取 ...

  10. QTP校验数据库中数据后台项目

    数据校验功能后台主要包含两个类:QTPCommonServlet.java和QTPCommonDao.java 当中QTPCommonServlet.java为: package com.runqia ...