File uploads

Formward accepts file attachments on your forms. Add a <input type="file"> with a name and submit the form as multipart/form-data. Each uploaded file is stored securely and listed on the submission in your dashboard, where you can download it. File uploads are available on the Professional plan and above.

Add a file field

Set the form's enctype to multipart/form-data so the browser sends the file bytes, and give each file input a name. Use multiple to allow several files in one field.

<form
  action="https://forms.formward.eu/f/<formId>"
  method="POST"
  enctype="multipart/form-data"
>
  <label>
    Your CV
    <input type="file" name="cv" />
  </label>

  <label>
    Attachments
    <input type="file" name="attachments" multiple />
  </label>

  <button type="submit">Send</button>
</form>

Limits

  • Available on the Professional plan and above.
  • Up to 5 files per submission.
  • 10 MiB maximum per file.
  • 25 MiB maximum total across all files in one submission.
  • Files are scoped to the submission and only the form owner can download them, through an authenticated dashboard link.
  • Downloads are always served as attachments (never rendered inline), so an uploaded HTML or SVG file can never run as a page.

Allowed file types

Only the following MIME types are accepted. Anything else (including executables, scripts, archives, and HTML) is rejected with a 415:

  • Images: image/jpeg, image/png, image/gif, image/webp
  • Documents: application/pdf, text/plain, text/csv, application/csv
  • Microsoft Office: .doc/.docx, .xls/.xlsx, .ppt/.pptx
  • OpenDocument: .odt, .ods, .odp

Upload errors

When an upload violates a limit, the endpoint rejects the whole submission with one of these status codes (JSON body in AJAX mode, otherwise a minimal HTML error page). See Responses & redirects for the full table.

CodeWhenBody (AJAX)
400More than 5 files, or uploads not available on this server{ ok: false, error: "too many files" }
413A file exceeds 10 MiB, or the request exceeds 25 MiB total{ ok: false, error: "file too large" }
415A file's type is not in the allowed list{ ok: false, error: "file type not allowed: <mime>" }
403Uploads disabled on the form, or the plan does not include uploads{ ok: false, error: "file uploads are disabled for this form" }

On success, the AJAX response includes a files count of how many attachments were stored, e.g. { ok: true, id: "...", files: 2 }.

Viewing uploads

Open any submission under the form's Submissions tab. Files appear in an Attachments section with their size and type, each with a download link. Non-file fields behave exactly as described in Special fields.

File uploads, accept attachments on your form | Formward Docs