# Upload If latency doesn't matters, I'd like to use trucks with many hard disks. ## Demos ```demo basic drag submit-manually controlled on-finish default-files ``` ## Props ### Upload Props |Name|Type|Default|Description| |-|-|-|-| |accept|`string`'`undefined`|The accept type of upload. See accept.| |action|`string`'`undefined`|The URL to submit data to.| |data|`Object \| ({ file: UploadFile }) => Object`'`undefined`|The additional fileds data of HTTP request's form data.| |default-file-list|`Array`|`[]`|The default file list in uncontrolled manner.| |default-upload|`boolean`|`false`|If file uploaded immediatelly after file is selected.| |directory|`boolean`|`false`|If directory upload supported. Browser support needed. See input-file-directory.| |disabled|`boolean`|`false`|| |file-list-style|`Object`'`undefined`|The style of file list area| |file-list|`Array`|`undefined`|The file list of component. If set, the component will work in controlled manner.| |headers|`Object \| ({ file: UploadFile }) => Object`'`undefined`|The additional HTTP Headers of request.| |method|`string`|`'POST'`|The method of HTTP request.| |multiple|`boolean`|`false`|If multiple files selection supported.| |name|`string`|`'file'`|The field name of file in form data.| |show-cancel-button|`boolean`|`true`|Whether to show remove button (at file pending, uploadin, error status). Click on cancel button will fire `on-remove` callback.| |show-remove-button|`boolean`|`true`|Whether to show remove button (at file finished status). Click on remove button will fire `on-remove` callback.| |theme|`'light' \| 'dark' \| string`|`undefined`|| |with-credentials|`boolean`|`false`|If cookie attached.| |on-change|`(options: { file: UploadFile, fileList: Array, event?: Event }) => any`|`() => {}`|The callback of status change of the component. Any file status change would fire the callback.| |on-finish|`(options: { file: UploadFile }) => UploadFile \| void`|`({ file }) => file`|The callback of file upload finish. You can modify the UploadFile or retun a new UploadFile.| |on-remove|`(options: { file: UploadFile, fileList: Array }) => boolean \| Promise \| any`|`() => true`|The callback of file removal. Return false, promise resolve false or promise reject will cancel this removal.| ### UploadFile Type |Property|Type|Description| |-|-|-| |id|`string \| number`|The id of the file. Need to be unique. **Required** in controlled manner.| |name|`string`|File name. **Required** in controlled manner.| |status|`'pending' \| 'uploading' \| 'error' \| 'finished' \| 'removed'`|The status of file. **Required** in controlled manner.| |percentage|`number`|The progress percentage of file upload. It works when file is uploading. Not required in controlled manner.| |file|`File`|The File object of the file in brower. Not required in controlled manner.| ## Events ### Upload Events |Name|Parameters|Description| |-|-|-| |change|`(file: UploadFile, fileList: Array)`|| ## Methods ### Upload Methods |Name|Type|Description| |-|-|-| |submit|`(fileId?: string \| number)`|Submit all files in pending statis.| |openFileDialog|`() => void`|Open file dialog.| ## Slots ### Upload Slots |Name|Parameters|Description| |-|-|-| |default|`()`|| ### Upload Dragger Slots |Name|Parameters|Description| |-|-|-| |default|`()`||