Convert JS Object to form data

前端 未结 18 1922
孤街浪徒
孤街浪徒 2020-11-29 17:22

How can I can convert my JS Object to FormData?

The reason why I want to do this is, I have an object that I constructed out of the ~100 form field valu

18条回答
  •  北荒
    北荒 (楼主)
    2020-11-29 17:34

    I reference this from Gudradain's answer. I edit it a little in Typescript format.

    class UtilityService {
        private appendFormData(formData, data, rootName) {
    
            let root = rootName || '';
            if (data instanceof File) {
                formData.append(root, data);
            } else if (Array.isArray(data)) {
                for (var i = 0; i < data.length; i++) {
                    this.appendFormData(formData, data[i], root + '[' + i + ']');
                }
            } else if (typeof data === 'object' && data) {
                for (var key in data) {
                    if (data.hasOwnProperty(key)) {
                        if (root === '') {
                            this.appendFormData(formData, data[key], key);
                        } else {
                            this.appendFormData(formData, data[key], root + '.' + key);
                        }
                    }
                }
            } else {
                if (data !== null && typeof data !== 'undefined') {
                    formData.append(root, data);
                }
            }
        }
    
        getFormDataFromObj(data) {
            var formData = new FormData();
    
            this.appendFormData(formData, data, '');
    
            return formData;
        }
    }
    
    export let UtilityMan = new UtilityService();
    

提交回复
热议问题