formData数据批量上传多个文件以及追加JSON数据

189 阅读1分钟

什么是formData? MDN官网

FormData接口提供了一种方法来构造一组表示表单字段及其值的键/值对,这些键/值可以使用fetch()、XMLHttpRequest.send()或navigator.sendBeacon()方法发送。如果编码类型设置为“多部分/表单数据”,则它使用与表单相同的格式。

方法:

FormData.append():将一个新值追加到FormData对象内的现有键上,如果该键不存在,则添加该键

FormData.delete():从FormData对象中删除键/值对。

FormData.entries(): 返回一个迭代器,该迭代器遍历FormData中包含的所有键/值对。

FormData.get():从FormData对象中返回与给定键关联的第一个值。

FormData.getAll(): 从FormData中返回与给定键关联的所有值的数组。

FormData.has():返回FormData对象是否包含某个键。

FormData.keys():返回一个迭代器,该迭代器遍历FormData中包含的键/值对的所有键。

FormData.set():为FormData对象内的现有键设置一个新值,或者在键/值不存在的情况下添加该键/值

FormData.values():返回一个迭代器,该迭代器遍历FormData中包含的所有值。

问题1:批量上传多个文件

 let _params = new FormData()
   fileList.forEach((e: IAnyObject) => {
      _params.append('applyAttachmentRequest', e.file)
  })

问题2: 追加JSON数据

方法一:

let baseInfo = {name: 'zhangs', age: 20}  
let _params = new FormData()
 _params.append('jsonParams', JSON.stringify(baseInfo ))

方法二:

const _receptionInfo = {type: '标签一', label: '测试数据'}
let _params = new FormData()
_params.append('jsonParams', new Blob([JSON.stringify(_receptionInfo)], {type: "application/json",}))