js对象转formdata

2023-02-23  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读