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;
}