libcurl 上传文件至 web服务器

简介: 测试环境搭建, 使用 wamp server (windows下的 apache+MySQL+php)    libcurl vc6 工程代码  下载地址:  http://download.csdn.

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

 

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

 

处理上传文件 php  代码

 

 

[php]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php  
  2.     
  3.   if ($_FILES["file"]["error"] > 0)  
  4.     {  
  5.     echo "Return Code: " . $_FILES["file"]["error"] . "<br />";  
  6.     }  
  7.   else  
  8.     {  
  9.     echo "Upload: " . $_FILES["file"]["name"] . "<br />";  
  10.     echo "Type: " . $_FILES["file"]["type"] . "<br />";  
  11.     echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";  
  12.     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";  
  13.   
  14.     if (file_exists("./" . $_FILES["file"]["name"]))  
  15.       {  
  16.       echo $_FILES["file"]["name"] . " already exists. ";  
  17.       }  
  18.     else  
  19.       {  
  20.       move_uploaded_file($_FILES["file"]["tmp_name"],  
  21.       "./" . $_FILES["file"]["name"]);  
  22.       echo "Stored in: " . "/" . $_FILES["file"]["name"];  
  23.       }  
  24.     }  
  25. ?>  


libcurl  代码

 

 

 

[cpp]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
    1. // libCur1.cpp : Defines the entry point for the console application.  
    2. //  
    3.   
    4. #include "stdafx.h"  
    5. #include <stdio.h>  
    6. #include "curl/curl.h"  
    7.   
    8. #define MAX_BUFF_LEN 1048576 /*1M*/  
    9. #define POST_URL "http://10.10.1.4/d/upload.php"  
    10.   
    11.   
    12. int get_file_size(char *filename)  
    13. {  
    14.     FILE* fp = NULL;  
    15.     int nFileLen = 0;  
    16.       
    17.     fp = fopen(filename, "rb");  
    18.       
    19.     if (fp == NULL)  
    20.     {  
    21.         return 0;  
    22.     }  
    23.       
    24.     fseek(fp,0,SEEK_END); //定位到文件末   
    25.     nFileLen = ftell(fp); //文件长度  
    26.     return nFileLen;  
    27. }  
    28.   
    29. int http_post_file(const char *url, const char *filename)  
    30. {  
    31.     CURL *curl = NULL;  
    32.        CURLcode res;  
    33.   
    34.       struct curl_httppost *post=NULL;  
    35.       struct curl_httppost *last=NULL;  
    36.       struct curl_slist *headerlist=NULL;  
    37.   
    38.     if(filename == NULL || url == NULL)  
    39.         return -1;  
    40.   
    41.     printf("URL: %s\n", url);  
    42.     printf("filename: %s\n", filename);  
    43.   
    44.     /* Add simple file section */  
    45.     if( curl_formadd(&post, &last, CURLFORM_COPYNAME, "file",  
    46.                CURLFORM_FILE, filename, CURLFORM_END) != 0)  
    47.     {  
    48.         fprintf(stderr, "curl_formadd error.\n");  
    49.         return -1;  
    50.     }  
    51.       
    52.       /* Fill in the submit field too, even if this is rarely needed */  
    53.       curl_formadd(&post, &last,  
    54.                CURLFORM_COPYNAME, "submit",  
    55.                CURLFORM_COPYCONTENTS, "OK",  
    56.                CURLFORM_END);  
    57.   
    58.     //curl_global_init(CURL_GLOBAL_ALL);  
    59.     curl = curl_easy_init();  
    60.     if(curl == NULL)  
    61.     {  
    62.         fprintf(stderr, "curl_easy_init() error.\n");  
    63.         curl_formfree(post);  
    64.         return -1;  
    65.     }  
    66.   
    67.     curl_easy_setopt(curl, CURLOPT_HEADER, 0);  
    68.     curl_easy_setopt(curl, CURLOPT_URL, url); /*Set URL*/  
    69.     curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);  
    70.     int timeout = 5;  
    71.     curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);  
    72.     curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);  
    73.     curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1);  
    74.   
    75.     res = curl_easy_perform(curl);  
    76.     if(res != CURLE_OK)  
    77.     {  
    78.         fprintf(stderr, "curl_easy_perform[%d] error.\n", res);  
    79.         curl_formfree(post);  
    80.         return -1;  
    81.     }  
    82.   
    83.     curl_easy_cleanup(curl);      
    84.   
    85.     return 0;  
    86. }  
    87.   
    88. int main()  
    89. {     
    90.   
    91.     char sFilePath[128]="d:\\20130828131421113.jpg";  
    92.   
    93.     //Check File Size  
    94.     if(get_file_size(sFilePath) >= MAX_BUFF_LEN)  
    95.     {  
    96.         fprintf(stderr, "File Size is Big!\n");  
    97.         return -1;  
    98.     }  
    99.   
    100.     //POST File  
    101.     http_post_file(POST_URL, sFilePath);  
    102.   
    103.     getchar();  
    104.   
    105.     return 0;  
    106. }  
目录
相关文章
|
7天前
|
弹性计算 数据库 数据安全/隐私保护
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
在阿里云ECS(2核2G,SSD40G,3M带宽)上,安装Ubuntu 22.04,然后配置Docker和FTP。创建 `/config` 和 `/books` 目录,设置权限,开放端口,拉取 `johngong/calibre-web` Docker镜像,以`calibre-web`命名容器,映射端口,配置环境变量,挂载卷,确保重启策略。本地安装Calibre客户端,上传metadata.db到服务器。在Calibre-web服务端配置数据库,启用上传权限,修改管理员账户信息。完成配置后,开始上传电子书并进行阅读。
83 2
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
|
2天前
|
监控 安全 应用服务中间件
如何搭建高效的Web服务器:技术指南与实践
【7月更文挑战第24天】搭建一个高效的Web服务器需要综合考虑多个方面,包括选择合适的操作系统、安装合适的Web服务器软件、进行配置优化、加强安全防护以及实施性能监控。通过不断地优化和调整,可以确保Web服务器在高负载下仍能保持稳定和高效的运行,为用户提供优质的访问体验。
|
7天前
|
Java Linux 应用服务中间件
Windows和Linux的最佳Web服务器
【7月更文挑战第20天】Windows和Linux的最佳Web服务器
19 3
|
8天前
|
存储 开发框架 安全
如何选择合适的Web服务器?
【7月更文挑战第19天】如何选择合适的Web服务器?
20 2
|
8天前
|
JavaScript Java 应用服务中间件
Web服务器的发展历程?
【7月更文挑战第19天】Web服务器的发展历程?
17 2
|
8天前
|
存储 缓存 监控
Web服务器
【7月更文挑战第19天】Web服务器
15 2
|
13天前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
21天前
|
前端开发 Java 应用服务中间件
C/S和B/S架构以及Web服务器
C/S和B/S架构以及Web服务器
22 0
|
3天前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
2天前
|
存储 弹性计算 固态存储
租赁云服务器多少钱一年?阿里云价格确实优惠!
阿里云服务器价格优惠多样,适合不同需求。2024年最新优惠中,轻量应用服务器2核2G3M带宽一年82元(约6.8元/月),新老用户均可享受99元一年的2核2G3M带宽ECS经济型e实例。企业用户专享2核4G5M带宽ECS u1实例199元一年。4核16G10M带宽游戏服务器70元/月,8核32G10M带宽160元/月。此外,还有GPU服务器等多种配置可选。续费优惠根据时长不同,最长可达3折。带宽和存储也有多种价格方案。具体详情和最新优惠请访问阿里云官网。
租赁云服务器多少钱一年?阿里云价格确实优惠!

热门文章

最新文章