react-core-image-upload
Version:
a component for image to upload and crop
107 lines (77 loc) • 3.27 kB
Markdown
[]()

[](https://travis-ci.org/Vanthink-UED/react-core-image-upload)
<img src="./shots/react-core-image-upload.jpg" width="320" />
一款轻量级的图片上传裁剪组件
[]('./README.md')
使用 npm
```bash
npm install react-core-image-upload --save
```
使用 yarn
``` bash
yarn add react-core-image-upload
```
``` js
import React from 'react';
import ReactCoreImageUpload from 'react-core-image-upload';
let App = React.createClass({
//...
render() {
return(
<div>
<ReactCoreImageUpload
text="Upload Your Image"
class={['pure-button', 'pure-button-primary', 'js-btn-crop']}
inputOfFile="files"
url="./api/upload.php"
imageUploaded={this.handleRes}>
</ReactCoreImageUpload>
</div>
);
},
handleRes(res) {
this.setState({
// handle response
})
}
})
```
``` bash
yarn run start
```
[](http://localhost:9000/webpack-dev-server/demo/index.html)
[](http://vanthink-ued.github.io/react-core-image-upload/upload.html)
| Props | Type | Example | Description |
| ------------- |:----------| ---------|--------------|
| url | String | '/crop.php' | 服务端上传的地址 |
| text | String | 'Upload Image' | 你需要显示按钮的文本 |
| inputOfFile | String | 'file' | 上传服务端对应表单 name |
| extensions | String | 'png,jpg,gif' | 限制的图片类型 |
| crop | Boolean | true | 是否需要裁剪 |
| cropRatio | String | '1:1' | 限制裁剪的形状|
| cropBtn | Object | {ok:'Save','cancel':'Give Up'} |按钮文本|
| maxFileSize | Number | 10485760(10M) | 文件大小限制|
| maxWidth | Number | 150 | 限制裁剪图片的最大宽度|
| maxheight | Number | 150 | 限制裁剪图片的最大高度|
| inputAccept | string | 'image/*' / 'image/jpg,image/jpeg,image/png' | 赋予上传file的接受类型|
| isXhr | Boolean | true | 是否需要调用系统内自己的上传功能
| headers | Object | {auth: xxxxx} | 设置xhr上传 的header
+ `imageUploaded`: 当图片上传成功后的响应处理
+ `imageChanged`: 当选择图片后
+ `imageUploading` 图片上传过程中
+ `errorHandle`图片上传中的异常处理
[](http://vanthink-ued.github.io/react-core-image-upload/upload.html)
[](https://github.com/Vanthink-UED/react-core-image-upload/blob/master/src/components/contents.js)
If you crop a image , your crop will send a request to your server with some crop arguments;
<img src="./shots/vuedba0ed377b88fc84d51026310efcb255b.png" />
参数如上图。
如果你需要自定义裁剪弹窗的的样式,你可以自己写css进行覆盖