html.contact

File Upload Form

Accept one document upload with a normal file input, multipart encoding, and no upload service glue code.

Button
Background
Border
Text

What this form is

This file upload form accepts a document plus a short note. It is useful when the upload is the point of the interaction: a document, brief, signed form, resume, intake file, or reference material.

The markup uses multipart encoding because that is how browsers send files. Nothing else in the library needs multipart unless it has a file input.

When to use it

Fields explained

name and email identify the sender. They use standard autocomplete values because people filling upload forms are often on mobile or in a hurry.

attachment is a file input with a name, a label, and an accept hint for common document formats. The accept attribute guides the picker, but it is not a security boundary. Server-side validation still matters.

message gives the sender a place to explain what they uploaded. Keep it short unless your process needs a full intake questionnaire.

Why it works well with html.contact

html.contact supports file uploads from normal HTML forms, so this template avoids the usual upload paywall problem: no custom upload endpoint, no storage bucket setup, and no extra client script just to receive a document.

Use it on your site

The generated code is plain HTML and CSS. There is no framework dependency hiding in the snippet.

1

Create your form

Make a form in html.contact and copy the public key that starts with hc_pub_.

2

Paste the code

Replace the placeholder endpoint, keep method="POST", and leave the field names intact.

3

Test from the site

Add the deployed domain in html.contact, submit the form from that page, and check your inbox.

More form templates

Add email in minutes.

No server. No plugin. No backend code.

Create your form