formdata

The FormData API provides a way to build multipart/form-data bodies for HTTP requests, typically used with fetch for file uploads and form submissions.


API Surface

Class: FormData

  • new FormData() — create empty form.
  • form.append(name, value[, filename]) — add field or file.
  • form.set(name, value[, filename]) — set/replace field.
  • form.get(name), form.getAll(name) — retrieve values.
  • form.has(name), form.delete(name) — check/remove.
  • Iterable: for (const [key, value] of form).

Examples (English only)

// Build a form body
const form = new FormData();
form.append("username", "mamun");
form.append("avatar", new Blob(["filedata"]), "avatar.png");

// Submit with fetch
const res = await fetch("https://example.com/upload", {
  method: "POST",
  body: form
});
console.log("status:", res.status);

// Iterate form data
for (const [key, value] of form) {
  console.log(key, value);
}

Notes

  • Automatically sets Content-Type: multipart/form-data with proper boundary when used with fetch.
  • Supports files (Blob, File, Buffer) and simple fields.
  • Duplicate keys are allowed; use .getAll() to retrieve them.
  • Useful for browser and server-side environments.