react上传本地图片

class ImageUpload extends React.Component {
constructor(props) {
super(props);
this.state = {file: '',imagePreviewUrl: ''};
}

_handleSubmit(e) {
e.preventDefault();
// TODO: do something with -> this.state.file
console.log('handle uploading-', this.state.file);
}

_handleImageChange(e) {
e.preventDefault();

let reader = new FileReader();
let file = e.target.files[0];

reader.onloadend = () => {
this.setState({
file: file,
imagePreviewUrl: reader.result
});
}

reader.readAsDataURL(file)
}

render() {
let {imagePreviewUrl} = this.state;
let $imagePreview = null;
if (imagePreviewUrl) {
$imagePreview = (< img src={imagePreviewUrl} />);
} else {
$imagePreview = (<div className="previewText">Please select an Image for Preview</div>);
}

return (
<div className="previewComponent">
<form onSubmit={(e)=>this._handleSubmit(e)}>
<input className="fileInput" type="file" onChange={(e)=>this._handleImageChange(e)} />
<button className="submitButton" type="submit" onClick={(e)=>this._handleSubmit(e)}>Upload Image</button>
</form>
<div className="imgPreview">
{$imagePreview}
</div>
</div>
)
}
}

React.render(<ImageUpload/>, document.getElementById("mainApp"));

posted @ 2017-01-18 19:04  旧城旧城  阅读(975)  评论(1编辑  收藏  举报