# FileUpload Drag-and-drop file input with validation and removable files. Use FileUpload when readers need to choose or drop one or more files and review validation results. ## API The package declarations define these public members. | Member | Type | Kind | Required | Default | Description | | --- | --- | --- | --- | --- | --- | | `accept` | `string` | prop | No | `undefined` | MIME type, MIME group, or comma-separated extensions — as the native `accept`. | | `disabled` | `boolean` | prop | No | `false` | No additional description. | | `files` | `File[]` | binding | No | `[]` | Current selection. Two-way bindable. | | `hint` | `string` | prop | No | `undefined` | Secondary line under the headline, e.g. accepted formats. | | `label` | `string` | prop | No | `undefined` | No additional description. | | `maxSize` | `number` | prop | No | `undefined` | Maximum file size in bytes. | | `multiple` | `boolean` | prop | No | `false` | Accept several files; the list below the dropzone grows instead of replacing. | | `onError` | `(error: FileUploadError) => void` | callback | No | `undefined` | Fired when a file fails `accept` / `maxSize` validation. | | `onFilesChange` | `(files: File[]) => void` | callback | No | `undefined` | Fired with the full selection whenever it changes. | | `title` | `string` | prop | No | `'Drop files here or click to browse'` | Dropzone headline. | ## Related - [Label](/docs/components/label): Visible form label with required-state treatment. - [Input](/docs/components/input): Single-line field with internal or external labeling, hint, error, icons, and password reveal. - [Switch](/docs/components/switch): Bindable binary switch with visible or aria-only labeling.