js对象转formdata

  // 1、数组和对象
  const test = {
    name: 'test',
    addres: ['湖南', '湖北']
  }
  const getFormData = (obj) => {
    const formData = new FormData()
    Object.keys(obj).forEach(key => {
      const value = obj[key]
      if (Array.isArray(value)) {
        value.forEach((subValue, i) => {
          formData.append(key + `[${i}]`, subValue)
        })
      } else {
        formData.append(key, obj[key])
      }
    })
    return formData
  }
 // 2、对数组的数据处理,可以对filelist文件对象的处理。
function jsToFormData(config) { //对象转formdata格式
  let formData = new FormData();
  let obj = config.data;
  let arrayKey = config.arrayKey;
  for (var i in obj) {
    if (isArray(obj[i])) {
      obj[i].map(item => {
        if (!arrayKey) {
          formData.append(i, item)
        } else {
          formData.append(i + '[]', item)
        }
      })
    } else if (obj[i] instanceof FileList) {
      //filelist 文件类型的处理
      for (var fileItem = 0; fileItem < obj[i].length; fileItem++) {
        if (!arrayKey) {
          formData.append(i, obj[i].item(fileItem))
        } else {
          formData.append(i + '[]', obj[i].item(fileItem))
        }
      }
    } else {
      formData.append(i, obj[i])
    }
  }
  return formData;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容