/*
- @Author : Lem
- @Date : 2020-03-03 10:24:38
- @LastEditTime : 2020-09-02 16:46:57
- @Descripttion : -
- @FilePath : \src\utils\toFormData.js
*/
/**
- @Name: toFormData
- @Description: 转化 为 FormData
- @param {Object} data 传入 需转化的数据
- @return: {FormData}
*/
export default function toFormData(data) {
const fd = new FormData()
disposeData(’’, data, fd)
return fd
}
function disposeData(key, val, fd) {
for (const i in val) {
if (Array.isArray(val[i])) {
val[i].forEach((item, index) => {
if (item instanceof Blob) {
fd.append(keyJoin(key, i), item, item.name || index)
} else {
if (typeof item === ‘object’) disposeData(${i}[${index}]
, item, fd)
else {
if (item instanceof Blob) fd.append(keyJoin(key, i), item, index)
else fd.append(keyJoin(key, i), item)
}
}
})
} else if (typeof val[i] === ‘object’ && !(val[i] instanceof Blob)) {
disposeData(i, val[i], fd)
} else {
fd.append(keyJoin(key, i), val[i])
}
}
}
function keyJoin(…_args) {
return _args.filter(item => !!item).join(’.’)
}