美文网首页
js对象转formdata

js对象转formdata

作者: 江湖小盛 | 来源:发表于2023-02-23 22:28 被阅读0次
  // 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;
}

相关文章

网友评论

      本文标题:js对象转formdata

      本文链接:https://www.haomeiwen.com/subject/cpptldtx.html