# [Usage](../../../usage.md) > [Components](../basics.md) > [Form](form.md) > File Uploader

File picker for uploading documents and images from a [Form](form.md) schema, storing them in the `media` table. Use it when the user must supply new files; use [File Downloader](../visuals/file_downloader.md) to display or download already-stored files, and pair both via the `media` id in `value`.

![image](img/file_uploader_1.png)

```php
{!! 
  \KFramework\Components\Forms\Uploader::make()
  ->setLabel('File Uploader')
  ->setMultiple()
!!}
```

**End-to-end example:** attachments field accepting several files.
```php
// Blade:
{!!
  \KFramework\Components\Forms\Uploader::make('attachments')
    ->setLabel('Attachments')
    ->setMultiple()
    ->setRequired()
    ->setValue($existingMediaId ?? null)
!!}

// Controller:
use KFramework\Components\Forms\Uploader;

$uploader = Uploader::make('attachments')
    ->setLabel('Attachments')
    ->setMultiple();

return view('tickets.create', compact('uploader'));
```

---
## Usage

- Blade:
```php
{!! \KFramework\Components\Forms\Uploader::make() !!}
```
- Controller:
```php
Uploader::make()
```

---
## Standard attributes

- `uuid`
- `id`
- `classes`
- `extraAttributes`
- `name`
- `label`
- `value`:
  - You can set a [downloader](../visuals/file_downloader.md) directly inside this component, the value is the `id` of the file in `media` table. It will automatically retrieve the name of the file.
- `hidden`
- `required`
- `disabled`
- `multiple` — when set, allows picking several files in one field.
- `preIcon`
- `postIcon`
- `columnSpan`
- `updateOnChange` — when true, selecting a file refreshes dependent fields.

See their usage and description [here](../basics.md).

## See also
- [Components basics](../basics.md)
- [Form](form.md), [Input](input.md)
- [File Downloader](../visuals/file_downloader.md)
- [value](../shared_attributes/value.md), [multiple](../shared_attributes/multiple.md), [label](../shared_attributes/label.md)