栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++使用libcurl上传文件

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++使用libcurl上传文件

1、直接代码

libculr比较成熟,较少出问题,不多说直接上一个简单的示例

#include "stdafx.h"
#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
	CURL *curl;
	CURLcode res;

	struct curl_httppost *formpost = NULL;
	struct curl_httppost *lastptr = NULL;
	struct curl_slist *headerlist = NULL;
	static const char buf[] = "Expect:";

	curl_global_init(CURL_GLOBAL_ALL);

	
	curl_formadd(&formpost,
		&lastptr,
		CURLFORM_COPYNAME, "fileUpload",
		CURLFORM_FILE, "H:\1.xlsx",
		CURLFORM_END);

	
	curl_formadd(&formpost,
		&lastptr,
		CURLFORM_COPYNAME, "filename",
		CURLFORM_COPYCONTENTS, "1.xlsx",
		CURLFORM_END);

	
	curl_formadd(&formpost,
		&lastptr,
		CURLFORM_COPYNAME, "submit",
		CURLFORM_COPYCONTENTS, "Submit",
		CURLFORM_END);

	curl = curl_easy_init();
	
	headerlist = curl_slist_append(headerlist, buf);
	if (curl) {
		

		curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:5600/upload");
		if ((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
			
			curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);

		
		res = curl_easy_perform(curl);
		
		if (res != CURLE_OK)
			fprintf(stderr, "curl_easy_perform() failed: %sn",
				curl_easy_strerror(res));

		
		curl_easy_cleanup(curl);

		
		curl_formfree(formpost);
		
		curl_slist_free_all(headerlist);
	}
	return 0;
}
2、使用nodejs 作为服务端测试

使用multer 来接收上传文件

const express=require('express');
const app=express();
const multer=require('multer');
const bodyParser=require('body-parser');
const fs=require('fs');
const path=require('path');
app.listen(5600,(err)=>{
    if(err)
        console.log(err);
    else
        console.log('成功监听5600端口');
});
//获取数据请求  post方式
app.use(bodyParser.urlencoded({
    extended:true,
    maxAge:5*1024*1024
}));
app.use(express.static('./www'));
const storage=multer.diskStorage({  //上传属性定制
    destination:function(req,file,cb){
        cb(null,'./upload');
    },
    filename:function(req,file,cb){  //保存的文件名
        var arr=file.originalname.split('.');
        var ext='.'+arr[arr.length-1]; //后缀名
        var filename='user'+Math.random().toString().replace('.','')+ext;
        cb(null,filename);
    }
});
const upload=multer({storage:storage}).single('fileUpload');
app.use('/upload',(req,res)=>{
    //上传
    upload(req,res,(err)=>{
        if(err){//上传时发生错误
            console.log(err);
            return;
        }
        //上传完后,一切顺利
        console.log(111);
        res.send('ok');
    });
});
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号