# Upload
```rust demo
let message = use_message();
let custom_request = move |file_list: FileList| {
message.create(
format!("Number of uploaded files: {}", file_list.length()),
MessageVariant::Success,
Default::default(),
);
};
view!{
}
```
### Drag to upload
```rust demo
let message = use_message();
let custom_request = move |file_list: FileList| {
message.create(
format!("Number of uploaded files: {}", file_list.length()),
MessageVariant::Success,
Default::default(),
);
};
view! {
"Click or drag a file to this area to upload"
}
```
### Upload Props
| Name | Type | Default | Description |
| -------------- | -------------------------------- | -------------------- | ------------------------------------ |
| accept | `MaybeSignal` | `Default::default()` | The accept type of upload. |
| multiple | `MaybeSignal` | `false` | Allow multiple files to be selected. |
| custom_request | `Option>` | `Default::default()` | Customize upload request. |
| children | `Children` | | Upload's content. |
### UploadDragger Props
| Name | Type | Default | Description |
| -------- | ---------- | ------- | ------------------------ |
| children | `Children` | | UploadDragger's content. |