ant-design/components/upload/index.en-US.md

89 lines
4.4 KiB
Markdown
Raw Normal View History

2016-08-25 09:46:19 +08:00
---
category: Components
type: Data Entry
2016-09-21 11:28:38 +08:00
title: Upload
2016-08-25 09:46:19 +08:00
---
2016-09-18 11:08:54 +08:00
Upload file by selecting or dragging.
2016-08-25 09:46:19 +08:00
2016-09-10 13:43:30 +08:00
## When To Use
2016-08-25 09:46:19 +08:00
Uploading is the process of publishing information (web pages, text, pictures, video, etc.) to a remote server via a web page or upload tool.
- When you need to upload one or more files.
- When you need to show the process of uploading.
- When you need to upload files by dragging and dropping.
## API
2017-10-25 10:25:44 +08:00
| Property | Description | Type | Default |
| -------- | ----------- | ---- | ------- |
| accept | File types that can be accepted. See [input accept Attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept) | string | - |
| action | Uploading URL | string\|(file) => `Promise` | - |
2018-08-08 04:30:55 +08:00
| directory | support upload whole directory ([caniuse](https://caniuse.com/#feat=input-file-directory)) | boolean | false |
2017-10-25 10:25:44 +08:00
| beforeUpload | Hook function which will be executed before uploading. Uploading will be stopped with `false` or a rejected Promise returned. **Warningthis function is not supported in IE9**。 | (file, fileList) => `boolean | Promise` | - |
| customRequest | override for the default xhr behavior allowing for additional customization and ability to implement your own XMLHttpRequest | Function | - |
2017-10-25 10:25:44 +08:00
| data | Uploading params or function which can return uploading params. | object\|function(file) | - |
| defaultFileList | Default list of files that have been uploaded. | object\[] | - |
| disabled | disable upload button | boolean | false |
| fileList | List of files that have been uploaded (controlled). Here is a common issue [#2423](https://github.com/ant-design/ant-design/issues/2423) when using it | object\[] | - |
| headers | Set request headers, valid above IE10. | object | - |
| listType | Built-in stylesheets, support for three types: `text`, `picture` or `picture-card` | string | 'text' |
| multiple | Whether to support selected multiple file. `IE10+` supported. You can select multiple files with CTRL holding down while multiple is set to be true | boolean | false |
| name | The name of uploading file | string | 'file' |
| showUploadList | Whether to show default upload list, could be an object to specify `showPreviewIcon` and `showRemoveIcon` individually | Boolean or { showPreviewIcon?: boolean, showRemoveIcon?: boolean } | true |
| supportServerRender | Need to be turned on while the server side is rendering. | boolean | false |
| withCredentials | ajax upload with cookie sent | boolean | false |
2018-09-21 15:04:51 +08:00
| openFileDialogOnClick | click open file dialog | boolean | true |
2017-10-25 10:25:44 +08:00
| onChange | A callback function, can be executed when uploading state is changing. See [onChange](#onChange) | Function | - |
| onPreview | A callback function, will be executed when file link or preview icon is clicked. | Function(file) | - |
| onRemove | A callback function, will be executed when removing file button is clicked, remove event will be prevented when return value is `false` or a Promise which resolve(false) or reject. | Function(file): `boolean | Promise` | - |
2016-08-25 09:46:19 +08:00
### onChange
2019-01-04 11:13:55 +08:00
> The function will be called when uploading is in progress, completed or failed.
2016-08-25 09:46:19 +08:00
When uploading state change, it returns:
```js
{
file: { /* ... */ },
fileList: [ /* ... */ ],
event: { /* ... */ },
}
```
1. `file` File object for the current operation.
```js
{
2019-02-06 20:51:46 +08:00
uid: 'uid', // unique identifier, negative is recommend, to prevent interference with internal generated id
2016-08-25 09:46:19 +08:00
name: 'xx.png' // file name
2017-10-09 13:23:20 +08:00
status: 'done', // optionsuploading, done, error, removed
response: '{"status": "success"}', // response from server
linkProps: '{"download": "image"}', // additional html props of file link
2016-08-25 09:46:19 +08:00
}
```
2016-09-18 11:08:54 +08:00
2016-08-25 09:46:19 +08:00
2. `fileList` current list of files
3. `event` response from server, including uploading progress, supported by advanced browsers.
2019-01-04 11:13:55 +08:00
## FAQ
### How to implement upload server side?
- You can consult [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload/wiki#server-side) about how to implement server side upload interface.
- There is a mock example of [express](https://github.com/react-component/upload/blob/master/server.js) in rc-upload.
### I want to display download links.
2016-08-25 09:46:19 +08:00
2019-01-04 11:13:55 +08:00
Please set property `url` of each item in `fileList` to control content of link.
2016-08-25 09:46:19 +08:00
2019-01-04 11:13:55 +08:00
### How to use `customRequest`?
2019-01-04 11:13:55 +08:00
See <https://github.com/react-component/upload#customrequest>.
2019-01-04 11:13:55 +08:00
### IE8/9 Note
2016-08-25 09:46:19 +08:00
2019-01-04 11:13:55 +08:00
See <https://github.com/react-component/upload#ie89-note>.