Skip to content

Instantly share code, notes, and snippets.

@ashiqqs
Created October 8, 2022 19:44
Show Gist options
  • Save ashiqqs/941ceef677b343e53d20cad09180d2e4 to your computer and use it in GitHub Desktop.
Save ashiqqs/941ceef677b343e53d20cad09180d2e4 to your computer and use it in GitHub Desktop.
Converting object to form data in angular
export class HttpHelper {
static getObjectToFormData(obj: any): FormData {
const formData = new FormData();
for (var key in obj) {
if (typeof (obj[key]) === 'string' || typeof (obj[key]) === 'number') {
formData.append(key, obj[key])
}
else if (obj[key] && obj[key] instanceof Date) {
formData.append(key, obj[key].toLocaleDateString())
}
else if (obj[key] instanceof File) {
formData.append(key, obj[key], obj[key].name);
}
else if (obj[key] instanceof FileList) {
for (let i = 0; i < obj[key].length; i++) {
const file = obj[key][i];
formData.append(`${key}`, file, file.name);
}
}
else if (obj[key] && typeof (obj[key]) === 'object') {
this.objToFormDataRecursive(key, obj[key], formData);
}
}
return formData;
}
private static objToFormDataRecursive(formKey: string, obj: any, formData: FormData): any {
for (var key in obj) {
if (typeof (obj[key]) === 'string' || typeof (obj[key]) === 'number') {
formData.append(`${formKey}[${key}]`, obj[key])
}
else if (obj[key] && obj[key] instanceof Date) {
formData.append(key, obj[key].toLocaleDateString())
}
else if (obj[key] instanceof File) {
formData.append(`${formKey}[${key}]`, obj[key]);
}
else if (obj[key] instanceof FileList) {
for (var i = 0; i < obj[key].length; i++) {
const file = obj[key][i];
formData.append(`${formKey}[${key}]`, file, file.name);
}
}
else if (obj[key] && typeof (obj[key]) === 'object') {
return this.objToFormDataRecursive(`${formKey}[${key}]`, obj[key], formData);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment