Nodejs发送multipart/form-data请求,上传文件
var FormData = require('form-data');
var fs = require('fs');
var http = require('http');
var form = new FormData();
form.append('file', fs.createReadStream("./filename.zip"));//'file'是服务器接受的key
var headers = form.getHeaders();//这个不能少
headers.Cookie = cookie;//自己的headers属性在这里追加
var request = http.request({
method: 'post',
host: 'ice97.cn',
path: '/uploadFile/',
headers: headers
},function(res:any){
var str='';
res.on('data',function(buffer:any){
str+=buffer;//用字符串拼接
}
);
res.on('end',()=>{
var result = JSON.parse(str);
//上传之后result就是返回的结果
});
});
form.pipe(request);
由于nodejs大多数都是写接受表单请求的,所以很少的资料用nodejs作为客户端去上传文件。试了needle这个库,但是没成功,上面这个方法是成功的。希望对大家有帮助!
参考文章:
form-data
nodejs之http.request 网页抓取数据