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 网页抓取数据

请问如果用 nodejs 通过post 发送 multipart / form-data 类型的http 请求 ? 网络上搜索的都是解析 multipart / form-data 表单的,express已经提供 表单数据主体 一个很小的,无依赖的节点模块,用于为POST 请求 生成表单的 multipart / form-data 主体。 这意味着它是一个简单的,没有多余的装饰的模块,用于生成要作为POST 请求 的主体 发送 的字符串,以模拟表单提交。 如果您需要更多的东西,请检查模块。 npm install --save form-data -body const formDataBody = require ( ' form-data -body' ) // Specify form fields const fields = { name : 'My test post' , description : 'This is just a test post' , items : [ 'First Item' , 'Second Item' ] , // Files should set('key','value'): 设置表单对象中属性的值 (如果已存在该属性, 那么只会修改属性值;append('key','value'): 向表单对象中追加属性;set 和 append的区别: 在属性名已存在的情况下,set会覆盖已有键名的值,append会保留两个值;delete('key'): 删除表单对象中属性的值;// 将普通的html表单转换为formData表单对象。// 动态创建img标签。 一个对原始数据进行操作的javascript / nodejs multipart / form-data 解析器。 克里斯蒂安·萨拉萨(Cristian Salazar)。 电子邮件: ,网站: ,我住在比尼亚德尔马(南美)。 我是专注于无服务器软件开发的Amazon AWS开发人员,我称之为:软件开发的新时代。 帮助与教程 观看我的视频,其中介绍了的必要步骤。 您可以。 有时,您只能访问原始的多部分有效负载,并且需要对其进行解析才能提取其中包含的文件或数据。 例如:Amazon AWS ApiGateway,它将作为http客户端和您的组件(您编写的用来提取上传的文件或数据的组件)之间的立面。 格式化为 multipart / form-data 的原始有效负载将类似于以下内容: ------WebKitFormBoundaryDtbT5UpPj83kllfw sudo npm i npm@latest -g` sudo apt -y install curl curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - # sudo add-apt-repository ppa:chris-lea/node.js # sudo apt-ge 本文介绍了Node Js 使用KOA处理 form-data 格式传输过来的文件,分享给大家。具体如下: 使用koa有一段时间了,评价是小巧精悍,只封装了基本的如request对象和response对象到上下文中,其他功能基本上靠第三方中间件来实现。导致的问题是使用起来就不太方便了,比如用koa上传文件,网上资料有限,对于小白而言,文件上传操作就困难多了。 form表单上传文件流程(PHP和node js) 文件上传操作原理 form表单【注意:enctype=” multipart / form-data ”】上传文件时,首先会将文件上传到你本机的temp目录,然后执行move_upload_file( 后台(go)+ 中间(node)+前端(vue) 使用node进行中间层转发,前端使用 form-data 进行数据上传,传递给node,node使用 form-data 将数据传给后端(go) 前端上传excel 页面效果: 页面布局实现:(使用elementui框架) <el-upload class="upload-demo" ref="fileupload" accep... 我们使用form和input控件上传文件到服务器,服务器采取Node.js应用接收客户端上传的文件。里的回调函数,req的类型为IncomingMessage,url字段的值为。这个库文件,解析从客户端提交的本地文件。使用HTML标准的form标签,action值为。注意,此时这个回调函数并不会立即执行。,这个值在Node.js应用里会再次用到。此时url变成了form里指定的。我们在title字段输入。,multiple属性为。选中两个文件后,点击。... 由于一直没有尝试使用 Node 的原生模块去接收表单上传时的表单数据,所以自己尝试写时遇到了很多问题,却发现网上没有一篇这样原生 demo 来讲解这个问题,所以决心去看 multipary 的源码自己学习并写一篇帮助其他童鞋。 function send Multipart (filePath) { const formData = { audio : fs.createReadStream(filePath) let options = { method : 'POST',