File uploads

A contact form can accept file attachments alongside the text submission. Uploads are off until you enable them on the form, and the owner's plan must include a storage quota - a plan with no storage cannot receive files.

Markup

Add a file input with any name you like and set the form's encoding:

<form action="https://sendform.net/!a8Kz3mXq12" method="POST"
      enctype="multipart/form-data">
  <input type="email" name="email" required>
  <textarea name="message" required></textarea>
  <input type="file" name="attachment" multiple>
  <button type="submit">Send</button>
</form>

Every file part in the request is considered, whatever its field name. Attachments appear on the submission in the dashboard, in the notification email, and in the webhook payload.

Limits

Limit Value
Total size per submission The form's cap, 1-5 MB (5 MB by default), shared across all files
Files per submission The form's cap, 1-5 (1 by default)
Account storage Whatever the plan's storage quota allows, across all forms

The size cap is a combined budget for one submission, not a per-file limit, and the effective budget is the smaller of the form's cap and the storage left in the account's quota.

Allowed file types

Only an allowlist of known-good extensions is stored:

  • Images - jpg, jpeg, png, gif, webp, svg, bmp, heic, heif, avif, tiff, tif
  • Documents - pdf, doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp, rtf, pages, numbers, key
  • Text and data - txt, csv, tsv, md, json, xml

Anything else is ignored. Filenames are reduced to a safe basename (no directories, at most 200 characters).

What happens when a file is rejected

Uploads are best-effort and never fail the submission: a file that is too large, of a disallowed type, or over the account's storage quota is skipped, while the text submission is still stored and delivered. If a file was dropped specifically because storage ran out, the form owner is alerted.

Images, PDFs and plain-text files can be previewed in the dashboard. SVG and HTML are download-only, since they can carry scripts.