Contact Form with File Upload (Attachments)
Some contact forms need attachments — a project brief, a CV, a damaged-product photo. This is the form pattern for that, with drag-and-drop, multi-file, and removable file rows.
File attachments are where most form backends fall over — they either don't support them, or they bolt on an upload service (Cloudinary, Uploadcare) you have to configure. splitforms handles multipart file uploads through the same one-endpoint integration model after Storage is connected. PDFs, screenshots, CVs, and project briefs are stored with signed download URLs.
- →Quote request · 6 fields
- →HTML, JS, React, PHP, cURL outputs
- →One POST endpoint, no SDK
- →Honeypot + classifier, no CAPTCHA
See exactly what your visitors see — and you’ll receive.
Left: the rendered form, fully interactive in a sandboxed iframe. Right: the email and dashboard view that lands the moment a visitor submits.
Every submission becomes an email plus a dashboard row. The fields below are the exact payload your form will send. Reply-to is wired to the visitor’s email so hitting reply goes back to them.
Iframe is sandboxed — submit doesn’t actually fire. Get your access key to wire it up live.
Generate, embed, receive.
Three actions stand between you and your first lead. None of them require a backend, a database, or a CAPTCHA library.
Use the file-upload template
Copy the HTML/JS for the drag-and-drop zone. The same form action endpoint handles file payloads via multipart/form-data — no special API.
Set per-file limits
Default cap is 10 MB per file, 5 files per submission. File extensions and sizes are validated server-side.
Receive attached files
The dashboard stores files with signed download URLs. Webhooks and notifications can reference those stored files.
Five outputs. One backend.
HTML by default. Click open the language you ship in — every variant POSTs to the same /api/submit endpoint.
Replace YOUR_ACCESS_KEY with the key from your dashboard. That’s the only edit.
One template. Every framework.
The same field set works on every framework splitforms supports. HTML, React, Next.js, Vue, Astro, Hugo, WordPress — same POST, same backend.
Things people ask before they ship.
Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.
Ship your contact form with file upload (attachments) in 60 seconds.
500 free submissions per month. No credit card. Copy the snippet, paste your access key, watch leads land in your dashboard.