kf-slate-editor
Version:
Another rich text editor using Slate framework with toolbar support
53 lines (45 loc) • 1.33 kB
Flow
/**
* Created by zhangliqing on 2018/5/18.
*/
// @flow
import * as React from "react";
import Dropzone from 'react-dropzone';
import ImageCompressor from 'image-compressor.js';
class Image extends React.Component<any> {
constructor(props) {
super(props)
this.state = { imageBase64Files:[] }
}
handleDrop(imageFiles) {
let imageBase64Files=new Array();
imageFiles.forEach(file => {
new ImageCompressor(file, {
quality: 0.6,
success: (result) => {
var reader = new FileReader();
reader.readAsDataURL(result);
reader.onloadend = ()=> {
let base64data = reader.result;
imageBase64Files.push(base64data);
this.setState({imageBase64Files:imageBase64Files});
}
},
error: (e) => {
console.log(e.message);
},
});
});
}
render() {
const { imageBase64Files } = this.state
return (
<section>
{imageBase64Files.length === 0 && <Dropzone onDrop={ this.handleDrop.bind(this) }>
拖拽或点击上传
</Dropzone>}
{ imageBase64Files.length > 0 && <div>{imageBase64Files.map((base,i) => <img src={base} key={i} style={{margin: "10px auto", maxWidth:"100%"}} /> )}</div>}
</section>
)
}
}
export default Image;