## Upload
Upload files by clicking or drag-and-drop
### Click to upload files
:::demo Customize upload button type and text using `slot`.
```html
Click to upload
jpg/png files with a size less than 500kb
```
:::
### User avatar upload
Use `before-upload` hook to limit the upload file format and size.
::: demo
```html
```
:::
### Photo Wall
Use `list-type` to change the fileList style.
::: demo
```html
```
:::
### FileList with thumbnail
::: demo
```html
Click to upload
jpg/png files with a size less than 500kb
```
:::
### File list control
Use `on-change` hook function to control upload file list
::: demo
```html
Click to upload
jpg/png files with a size less than 500kb
```
:::
### Drag to upload
You can drag your file to a certain area to upload it.
::: demo
```html
Drop file here or click to upload
jpg/png files with a size less than 500kb
```
:::
### Manual upload
::: demo
```html
select file
upload to server
jpg/png files with a size less than 500kb
```
:::
### Attributes
Attribute | Description | Type | Accepted Values | Default
----| ----| ----| ----| ----
action | required, request URL | string | — | —
headers | request headers | object | — | —
multiple | whether uploading multiple files is permitted | boolean | — | —
data | additions options of request | object | — | —
name | key name for uploaded file | string | — | file
with-credentials | whether cookies are sent | boolean | — |false
show-upload-list | whether to show the uploaded file list | boolean | — | true
drag | whether to activate drag and drop mode | boolean | — | false
accept | accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode` is `true` | string | — | —
on-preview | hook function when clicking the uploaded files | function(file) | — | —
on-remove | hook function when files are removed | function(file, fileList) | — | —
on-success | hook function when uploaded successfully | function(response, file, fileList) | — | —
on-error | hook function when some errors occurs | function(err, file, fileList) | — | —
on-progress | hook function when some progress occurs | function(event, file, fileList) | — | — |
on-change | hook function when select file or upload file success or upload file fail | function(file, fileList) | — | — |
before-upload | hook function before uploading with the file to be uploaded as its parameter. If `false` or a `Promise` is returned, uploading will be aborted | function(file) | — | —
thumbnail-mode | whether thumbnail is displayed | boolean | — | false
file-list | default uploaded files, e.g. [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}] | array | — | []
list-type | type of fileList | string | text/picture/picture-card | text |
auto-upload | whether to auto upload file | boolean | — | true |
http-request | override default xhr behavior, allowing you to implement your own upload-file's request | function | — | — |
disabled | whether to disable upload | boolean | — | false |
### Methods
| Methods Name | Description | Parameters |
|---------- |-------- |---------- |
| clearFiles | clear the uploaded file list (this method is not supported in the `before-upload` hook) | — |
| abort | cancel upload request | ( file: fileList's item ) |