libcurl 上传文件至 web服务器
2014-10-20 19:16
295 查看
测试环境搭建, 使用 wamp server (windows下的 apache+mysql+php)
libcurl vc6 工程代码 下载地址: http://download.csdn.net/detail/mtour/8060775
处理上传文件 php 代码
libcurl 代码
libcurl vc6 工程代码 下载地址: http://download.csdn.net/detail/mtour/8060775
处理上传文件 php 代码
<?php if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("./" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "./" . $_FILES["file"]["name"]); echo "Stored in: " . "/" . $_FILES["file"]["name"]; } } ?>
libcurl 代码
// libCur1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include "curl/curl.h" #define MAX_BUFF_LEN 1048576 /*1M*/ #define POST_URL "http://10.10.1.4/d/upload.php" int get_file_size(char *filename) { FILE* fp = NULL; int nFileLen = 0; fp = fopen(filename, "rb"); if (fp == NULL) { return 0; } fseek(fp,0,SEEK_END); //定位到文件末 nFileLen = ftell(fp); //文件长度 return nFileLen; } int http_post_file(const char *url, const char *filename) { CURL *curl = NULL; CURLcode res; struct curl_httppost *post=NULL; struct curl_httppost *last=NULL; struct curl_slist *headerlist=NULL; if(filename == NULL || url == NULL) return -1; printf("URL: %s\n", url); printf("filename: %s\n", filename); /* Add simple file section */ if( curl_formadd(&post, &last, CURLFORM_COPYNAME, "file", CURLFORM_FILE, filename, CURLFORM_END) != 0) { fprintf(stderr, "curl_formadd error.\n"); return -1; } /* Fill in the submit field too, even if this is rarely needed */ curl_formadd(&post, &last, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "OK", CURLFORM_END); //curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl == NULL) { fprintf(stderr, "curl_easy_init() error.\n"); curl_formfree(post); return -1; } curl_easy_setopt(curl, CURLOPT_HEADER, 0); curl_easy_setopt(curl, CURLOPT_URL, url); /*Set URL*/ curl_easy_setopt(curl, CURLOPT_HTTPPOST, post); int timeout = 5; curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1); res = curl_easy_perform(curl); if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform[%d] error.\n", res); curl_formfree(post); return -1; } curl_easy_cleanup(curl); return 0; } int main() { char sFilePath[128]="d:\\20130828131421113.jpg"; //Check File Size if(get_file_size(sFilePath) >= MAX_BUFF_LEN) { fprintf(stderr, "File Size is Big!\n"); return -1; } //POST File http_post_file(POST_URL, sFilePath); getchar(); return 0; }
相关文章推荐
- libcurl 上传文件至 web服务器
- asp.net使用FtpWebRequest向ftp上传文件报错 基础连接已经关闭: 服务器提交了协议冲突
- 解决ECSHOP中“ 您的服务器设置了 open_base_dir 且没有包含 D:\\web,您将无法上传文件。”
- (总结2)WinForm中3种方式文件上传服务器:WebClient
- winForm 图片base64编码转换上传文件到web服务器
- (总结3)WinForm中文件上传服务器:HttpWebRequest .
- 使用WinInet向 ASP.Net Web服务器 多线程上传文件
- 在本地我们调试运行AJAX.NET程序完全没有问题,但是一旦上传到服务器就会出现很多Web.config文件异常
- c# WebClient上传文件到远程服务器 分类: .NET 2012-12-23 15:16 1627人阅读 评论(0) 收藏
- goAhead上实现文件上传到嵌入式web服务器上
- 【转】WinFrom通过WebClient向Web服务器上传下载文件(带进度条)
- goAhead上实现文件上传到嵌入式web服务器上
- CSLA支持大文件上传时web服务器端web.cong配置
- http文件上传到web服务器,上传到ftp服务器
- WinFrom通过WebClient向Web服务器上传下载文件(带进度条)
- WinFrom通过WebClient向Web服务器上传下载文件
- 文件上传到Web服务器
- winForm base64编码转换 上传文件到web服务器
- c# WebClient上传文件到远程服务器
- (总结3)WinForm中文件上传服务器:HttpWebRequest