← All guides

File uploads on public forms

Limits, allowed types, storage location, and viewing uploaded files.

Overview

Forms can include a File upload field that lets respondents attach files to their submission. Files are stored on the configured storage disk (local or S3) and accessible from the submission detail view.

Adding a file upload field

1. Open the form builder.

2. Click File in the Field library.

3. In the field editor, configure:

  • Label — the visible prompt (e.g. "Attach your CV").
  • Required — whether a file must be provided.
  • Accepted file types — comma-separated MIME types or extensions (e.g. `image/*,.pdf`). Leave blank to allow all types configured by the platform.
  • Max file size — the platform enforces a maximum defined by `SUBMISSION_MAX_FILE_SIZE_KB` in the server environment. Contact your platform operator if you need a higher limit.

Submitting a form with a file

The public form uses a standard `multipart/form-data` request when a file field is present. Respondents click the field to browse and select a file, then submit as normal.

Viewing uploaded files

1. Go to Forms → your form → Submissions.

2. Open a submission that includes a file upload.

3. The file field shows a download link. Click it to download the file.

Storage location

Files are stored at `storage/app/public/submissions/{form_uuid}/{filename}` by default (local disk). If S3 is configured (`FILESYSTEM_DISK=s3`), files go to the configured bucket under the same path structure.

File size and type limits

Platform-level limits are set by the server operator:

  • `SUBMISSION_MAX_FILE_SIZE_KB` — maximum upload size in kilobytes.
  • Allowed MIME types are configured in `config/security.php`.

If a submission is rejected because the file is too large or the type is not allowed, the respondent sees a validation error before the form is submitted.

Data retention and deletion

Uploaded files are deleted along with their submission when:

  • A submission is manually deleted.
  • The form's data retention policy automatically expires the submission.

Related guides