joken-前端工程师

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

目的是为了方便异步提交form表单的数据,尤其是在单页应用中方便实现表单数据的提交。

 

代码如下:

 

export 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数据格式,可以做到对数组的数据处理,可以对filelist文件对象的处理。

具体使用,个人可以依据自己的项目情况进行更改或改进。

注意:不兼容ie9及以下的ie

posted on 2019-06-25 20:50  joken1310  阅读(13214)  评论(0)    收藏  举报