# File upload

> The values of `upload` inside `file-uploader` or `file-input` or `configurator-file-input`.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/reference/attributes/upload  
Updated: 2026-10-13

## At a glance

| Class | On | When |
|---|---|---|
| `is-dragover` | `file-uploader` | a file is dragged over it |
| `is-uploading` | `file-uploader` and the item | a file is uploading: `upload="progress"` counts up, and the form waits for it before adding to the cart |
| `has-files`, `is-done`, `is-image` | `has-files` on `file-uploader`; `is-done` on the item, and `is-image` when it is an image | the file is uploaded: the item shows its name, size and, with `data-preview`, the preview |
| `is-full` | `file-uploader` | the file limit of `data-multiple` is reached |
| `is-invalid` | `file-uploader` | a file was refused: `upload="errors"` shows each refused file and why, such as "page.html: File is of invalid type" |
| `is-error` | the item | the upload failed: its `upload="error"` shows why, such as "Error during upload" |

More in [the guide](https://www.smootify.io/docs/features/file-uploads).

## Where it can go

- **Inside any of:** [`file-uploader`](https://www.smootify.io/docs/reference/elements/file-uploader), [`file-input`](https://www.smootify.io/docs/reference/elements/file-input), [`configurator-file-input`](https://www.smootify.io/docs/reference/elements/configurator-file-input).

## Values

| Attribute and value | What it is | Notes |
|---|---|---|
| `upload="dropzone"` | Drop zone | on container |
| `upload="list"` | File list | on container |
| `upload="item"` | File row | Template: one per file; on container |
| `upload="preview"` | Preview | on image, container |
| `upload="name"` | File name | on text |
| `upload="size"` | File size | on text |
| `upload="progress"` | Progress | on container |
| `upload="error"` | Error | on text |
| `upload="remove"` | Remove | on button, link |
| `upload="errors"` | Errors | on container |
