Node使用formdata格式的数据上传文件到服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node使用formdata格式的数据上传文件到服务器相关的知识,希望对你有一定的参考价值。

参考技术A 首先要声明一点,本文讲的是使用node上传文件到远程服务器的,比如说我们可以使用node上传图片到CDN。如果小伙伴想看的是node服务如何接收客户端上传的文件,那么你不用往下看了。

在前端项目中,我们常用的办法是使用 input 元素选择文件,然后构建 js FormData类的实例,并调用append方法将文件添加到FormData实例中,然后使用ajax库发起ajax请求上传文件即可。

那么在node里面有什么不一样呢?

完成以上工作就可以使用ajax库上传文件到服务端了!

微信小程序接口请求多文件+参数上传单文件+参数上传(formData形式) 微信小程序实现formData格式传参(亲测有效)

01.引入所需formData js文件

1.文件链接

链接: https://pan.baidu.com/s/1BDxx0-1KMAnkceXb45L5rg 提取码: 6ibp

2.引入使用
const FormData = require('../../../../utils/formData.js')

formData.js与mimeMap.js请确保在同一层级

02.formData参数

1.参数设置
let data = 
	age:18,
	name:张三

let fileList = [文件1,文件2,文件3];
let formData = new FormData();
for(var i in data)
   formData.append(i, data[i]); //添加非文件参数
  
// 多文件上传
fileList .forEach((v,index)=>
  formData.appendFile(`files[$index].file`, v.file.thumb); //微信小程序上传图片后获取的file.thumb
  formData.append(`files[$index].title`, v.file.url);
  formData.append(`files[$index].type`, 'image');
)
let baseUrl = getApp().globalData.basePath;
let url = ''; //API路径
let newData = formData.getData(); //获取formData参数,里面的参数为contentType、buffer

2.newData获取到的值

03.请求接口

1.wx.request
let newData = formData.getData(); 
wx.request(
   url: url,
   method: 'POST',
   header: 
     'content-type': newData.contentType,
     'Authorization': wx.getStorageSync('token')
   ,
   data: newData.buffer,
   success(res) 
     if(res.code == 200)
       Toast(
         type: 'success',
         onClose: () => 
           wx.navigateBack(
             url: '/pages/home/home',
           )
         ,
       );
     else 
       Toast(res.msg);
     
   
 );

2.请求参数Form Data

注意

1.formData传参类型

formData.appendFile 添加文件
formData.append 添加参数

2.content-type

content-type必须指定为newData.contentType

3.请求格式为POST请求,data参数

data必须指定为newData.buffer

以上是关于Node使用formdata格式的数据上传文件到服务器的主要内容,如果未能解决你的问题,请参考以下文章

FormData实现上传多图片,学习使用FormData

Node.js 无法读取 XHR2 FormData 数据

Node.js——异步上传文件

FormData/Go分片/分块文件上传

土旦 使用Vant 的Uploader 上传图片 重定义返回格式 使用FormData格式提交

fetch上传图片(formData数据格式)失败之解决办法