# rc-upload

> upload ui component for react

Latest version **4.11.0** (published 2025-09-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install rc-upload
pnpm add rc-upload
yarn add rc-upload
bun add rc-upload
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 4.11.0 |
| Published | 2025-09-25 |
| First published | 2015-05-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 3 |
| Unpacked size | 85.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 804 |
| Maintainers | shepherdwind, benjycui, afc163, yiminghe, zombiej, madccc |
| Keywords | react, react-component, react-upload, upload |

## Links

- npm: https://www.npmjs.com/package/rc-upload
- Repository: https://github.com/react-component/upload
- Homepage: http://github.com/react-component/upload
- Issues: http://github.com/react-component/upload/issues
- npm.io page: https://npm.io/package/rc-upload

## Dependencies (3)

- [rc-util](https://npm.io/package/rc-util.md) ^5.2.0
- [classnames](https://npm.io/package/classnames.md) ^2.2.5
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.18.3

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 4.11.0 (latest) — 2025-09-25
- 4.9.0 (lastest) — 2025-04-10
- 4.3.6 (legacy) — 2023-12-22
- 3.0.0-alpha.2 (beta) — 2020-01-16
- 1.6.6-beta.1 (next) — 2015-09-28
- 4.10.0 — 2025-07-28
- 4.9.2 — 2025-05-27
- 4.9.1 — 2025-05-27
- 4.8.1 — 2024-08-30
- 4.8.0 — 2024-08-30
- 4.7.0 — 2024-08-13
- 4.6.0 — 2024-07-11
- 4.5.2 — 2023-12-21
- 4.5.1 — 2023-12-13
- 4.4.0 — 2023-10-18
- … 127 more at https://npm.io/package/rc-upload/versions

## README

# rc-upload

React Upload

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![build status][github-actions-image]][github-actions-url]
[![Codecov][codecov-image]][codecov-url]
[![bundle size][bundlephobia-image]][bundlephobia-url]
[![dumi][dumi-image]][dumi-url]

[npm-image]: http://img.shields.io/npm/v/rc-upload.svg?style=flat-square
[npm-url]: http://npmjs.org/package/rc-upload
[travis-image]: https://img.shields.io/travis/react-component/upload/master?style=flat-square
[travis-url]: https://travis-ci.com/react-component/upload
[github-actions-image]: https://github.com/react-component/upload/workflows/CI/badge.svg
[github-actions-url]: https://github.com/react-component/upload/actions
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/upload/master.svg?style=flat-square
[codecov-url]: https://app.codecov.io/gh/react-component/upload
[david-url]: https://david-dm.org/react-component/upload
[david-image]: https://david-dm.org/react-component/upload/status.svg?style=flat-square
[david-dev-url]: https://david-dm.org/react-component/upload?type=dev
[david-dev-image]: https://david-dm.org/react-component/upload/dev-status.svg?style=flat-square
[download-image]: https://img.shields.io/npm/dm/rc-upload.svg?style=flat-square
[download-url]: https://npmjs.org/package/rc-upload
[bundlephobia-url]: https://bundlephobia.com/package/rc-upload
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/rc-upload
[dumi-url]: https://github.com/umijs/dumi
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square

## Development

```
npm install
npm start
```

## Example

http://localhost:8000/

online example: https://upload.react-component.vercel.app/

## Feature

* support IE11+, Chrome, Firefox, Safari

## install

[![rc-upload](https://nodei.co/npm/rc-upload.png)](https://npmjs.org/package/rc-upload)

## Usage

```js
var Upload = require('rc-upload');
var React = require('react');
React.render(<Upload />, container);
```

## API

### props

|name|type|default| description|
|-----|---|--------|----|
|name | string | file| file param post to server |
|style | object | {}| root component inline style |
|className | string | - | root component className |
|disabled | boolean | false | whether disabled |
|component | "div"|"span" | "span"| wrap component name |
|action| string &#124; function(file): string &#124; Promise&lt;string&gt; | | form action url |
|method | string | post | request method |
|directory| boolean | false | support upload whole directory |
|data| object/function(file) | | other data object to post or a function which returns a data object(a promise object which resolve a data object) |
|headers| object | {} | http headers to post, available in modern browsers |
|accept | string | | input accept attribute |
|capture | string | | input capture attribute |
|multiple | boolean | false | only support ie10+|
|onStart | function| | start upload file |
|onError| function| | error callback |
|onSuccess | function | | success callback |
|onProgress | function || progress callback, only for modern browsers|
|beforeUpload| function |null| before upload check, return false or a rejected Promise will stop upload, only for modern browsers|
|customRequest | function | null | provide an override for the default xhr behavior for additional customization|
|withCredentials | boolean | false | ajax upload with cookie send |
|openFileDialogOnClick | boolean | true | useful for drag only upload as it does not trigger on enter key or click event |
|pastable | boolean | false | support paste upload |

#### onError arguments

1. `err`: request error message
2. `response`: request response, not support on iframeUpload
3. `file`: upload file

### onSuccess arguments

1. `result`: response body
2. `file`: upload file
3. `xhr`: xhr header, only for modern browsers which support AJAX upload. since
   2.4.0


### customRequest

Allows for advanced customization by overriding default behavior in AjaxUploader. Provide your own XMLHttpRequest calls to interface with custom backend processes or interact with AWS S3 service through the aws-sdk-js package.

customRequest callback is passed an object with:

* `onProgress: (event: { percent: number }): void`
* `onError: (event: Error, body?: Object): void`
* `onSuccess: (body: Object): void`
* `data: Object`
* `filename: String`
* `file: File`
* `withCredentials: Boolean`
* `action: String`
* `headers: Object`


### methods

abort(file?: File) => void: abort the uploading file

## License

rc-upload is released under the MIT license.

---
_Source: https://npm.io/package/rc-upload · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
