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
<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
| Control | Default |
|---|---|
| Files per submission | 5 |
| Size per file | 25 MB |
| Type check | MIME and extension allowlist |
| Attachment retention | 90 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