File Uploads

Accept file attachments on your forms. Size limits, storage quotas, and how to manage uploaded files.

Adding File Fields

There are two ways to add file upload fields to your forms:

Using the Form Designer

In the drag-and-drop form designer, add a File field type from the field palette. You can configure the field label, whether it is required, and accepted file types (e.g., images only, PDFs only, or any file).

Using custom HTML

Add a standard file input to your HTML form. The critical requirement is setting enctype="multipart/form-data" on the <form> tag. Without this attribute, browsers will not send file data.

<form action="https://formblade.com/f/contact"
      method="POST"
      enctype="multipart/form-data">

  <label for="name">Name</label>
  <input type="text" name="name" required>

  <label for="resume">Upload your resume</label>
  <input type="file" name="resume">

  <button type="submit">Submit</button>
</form>

Replace /f/contact with your own form link from the dashboard.

Important: If you forget enctype="multipart/form-data", the browser will submit the form as URL-encoded data and file fields will only send the filename, not the file contents.

Multiple files

To accept multiple files in a single field, add the multiple attribute:

<input type="file" name="attachments" multiple>

Each file is stored individually, and size limits apply per file, not per field.

Restricting file types

Use the accept attribute to hint at allowed file types. This provides a client-side filter in the file picker dialog:

<!-- Images only -->
<input type="file" name="photo" accept="image/*">

<!-- PDFs only -->
<input type="file" name="document" accept=".pdf">

<!-- PDFs and Word documents -->
<input type="file" name="report" accept=".pdf,.doc,.docx">

The accept attribute is a client-side hint that filters the file picker dialog. FormBlade also enforces file types on the server — dangerous files like .exe, .bat, .sh, and .lnk are always blocked. By default, safe document and image types are allowed (PDF, Word, Excel, PowerPoint, images, etc.). You can customize the allowed types in your form settings.

What you need to know

Size Limits

File size limits are enforced per file. If a single file exceeds the limit, the entire submission is rejected with a 413 response.

Plan Max File Size
Personal 1 MB per file
Pro and above 25 MB per file

There is no limit on the number of file fields per form or files per submission, but total submission size (all files combined) must fit within the per-file limits individually.

Storage Quotas

Each account has a total storage quota for uploaded files across all forms. When you approach your limit, a warning banner appears in the dashboard. When the quota is reached, new file uploads are rejected (but text-only submissions continue to work).

Plan Total Storage
Personal 100 MB
Pro 1 GB
Business 10 GB

Storage used by submissions that are deleted (manually or by data retention) is freed immediately and becomes available again.

File Metadata

For each uploaded file, FormBlade stores the following metadata alongside the file contents:

This metadata is visible in the submission detail view and is included in data exports (CSV and JSON).

Viewing Uploaded Files

To view files attached to a submission:

  1. Open the form in your dashboard.
  2. Go to the Submissions tab.
  3. Click on a submission row to expand it.
  4. Attached files appear in the expanded detail view with their filename, size, and content type.
  5. Click on a file to download it, or click the preview icon to view images and PDFs inline.

The submission table also shows a paperclip icon next to submissions that have file attachments, so you can quickly identify which submissions include files without expanding each row.

Storage Usage

Your current storage usage is displayed on the dashboard overview page as a usage bar. The bar shows:

You can also see per-form storage usage on each form's detail page under the Settings tab. This helps you identify which forms are consuming the most storage.

Tip: If you are approaching your storage limit, consider enabling data retention to automatically delete old submissions and their attached files. See the Privacy & Compliance guide for retention configuration.

AJAX File Uploads

If you submit forms via JavaScript (fetch or XMLHttpRequest), use FormData to include files:

const form = document.querySelector('form');
const data = new FormData(form);

fetch('https://formblade.com/f/contact', {
  method: 'POST',
  body: data
  // Do NOT set Content-Type header — the browser
  // sets it automatically with the correct boundary
});

Replace /f/contact with your own form link from the dashboard.

Warning: When using FormData, do not manually set the Content-Type header. The browser needs to set it to multipart/form-data with the correct boundary string. Setting it yourself will break the upload.

Complete example: job application form

Here's a real-world form with text fields and two separate file uploads:

<form action="https://formblade.com/f/contact"
      method="POST"
      enctype="multipart/form-data">

  <label>Full name</label>
  <input type="text" name="name" required>

  <label>Email</label>
  <input type="email" name="email" required>

  <label>Cover letter</label>
  <textarea name="cover_letter"></textarea>

  <label>Resume (PDF)</label>
  <input type="file" name="resume" accept=".pdf,.doc,.docx" required>

  <label>Portfolio (optional)</label>
  <input type="file" name="portfolio" accept=".pdf,.zip">

  <!-- Honeypot spam protection -->
  <input type="text" name="_gotcha" style="display:none" tabindex="-1">

  <button type="submit">Apply</button>
</form>

Replace /f/contact with your own form link from the dashboard.

Both files ("resume" and "portfolio") are stored separately. In the dashboard, the expanded submission view shows each file with its name, size, and a download link. Both are also attached to the notification email (if under 10 MB combined).

Allowed file types

By default, FormBlade accepts these safe file types:

.pdf .doc .docx .xls .xlsx .ppt .pptx .csv .txt .rtf .odt .ods .odp .asice .jpg .jpeg .png .gif .webp .svg

Additional types you can enable in form settings:

.zip .rar .7z .mp3 .mp4 .wav .psd .ai .json .xml and more

Dangerous file types are always blocked regardless of settings: .exe .bat .cmd .sh .lnk .dll .jar and other executable formats.