FreelyForm

File uploads

A file upload form backend with limits you control.

Accept documents and images without building storage, scanning, expiry, and download access yourself.

HTML form

Multipart form
<form action="https://freelyform.com/f/FORM_ID"
      method="POST"
      enctype="multipart/form-data">
  <input type="text" name="name" required>
  <input type="email" name="email" required>
  <input type="file" name="attachment" accept=".pdf,.png,.jpg" required>
  <button type="submit">Send</button>
</form>

File fields are stored with the submission and listed in the notification email. Authorized account users can download them from the submission detail page.

Limits and retention

ControlDefault
Files per submission5
Size per file25 MB
Type checkMIME and extension allowlist
Attachment retention90 days

Operational details that matter

  • Do not trust the filename. The service sanitizes names before storage and generates an opaque key.
  • Do not accept everything. A narrow allowlist reduces abuse and accidental malware intake.
  • Plan for deletion. Attachments expire; export anything that must be retained longer.
  • Use a real email address. Recipients must be verified before the notification containing the attachment is sent.

Files plus structured data

Multipart submissions still include normal text fields. Rules can require a message, check an email domain, or block a value before the upload is accepted. Spam submissions do not consume the monthly quota.

File upload questions

What file types can I accept?

Each form has a MIME and extension allowlist. Configure only the types you expect, such as PDF, PNG, JPEG, or DOCX, instead of accepting arbitrary uploads.

How large can a file be?

The current default is 25 MB per file and 5 files per submission, configurable per form within the service limits.

How long are attachments kept?

The default retention is 90 days. A scheduled sweep removes expired upload records and files. Submission text can follow a separate retention setting.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID