React后台管理系统-file-uploader组件
React后台管理系统-file-uploader组件
1.React文件上传组件github地址: https://github.com/SoAanyip/React-FileUpload
2.Util里边新建file-uploader文件夹,里边新建index.jsx
import React from \'react\';
import FileUpload from \'./react-fileupload.jsx\';
class FileUploader extends React.Component{
render(){
const options={
baseUrl :\'/manage/product/upload.do\',
fileFieldName : \'upload_file\',
dataType : \'json\',
chooseAndUpload : true,
uploadSuccess : (res) => {
this.props.onSuccess(res.data);
},
uploadError : (err) => {
this.props.onError(err.message || \'上传图片出错啦\');
}
}
return (
<FileUpload options={options}>
<button className="btn btn-xs btn-default" ref="chooseAndUpload">请选择图片</button>
</FileUpload>
)
}
}
export default FileUploader;
3.在save.jsx里边使用FileUploader组件
<div className="form-group">
<label className="col-md-2 control-label">商品图片</label>
<div className="col-md-10">
{
this.state.subImages.length ? this.state.subImages.map(
(image, index) => (
<div className="img-con" key={index}>
<img className="img" src={image.url} />
<i className="fa fa-close" index={index} onClick={(e) => this.onImageDelete(e)}></i>
</div>)
) : (<div>请上传图片</div>)
}
</div>
<div className="col-md-offset-2 col-md-10 file-upload-con">
<FileUploader onSuccess={(res) => this.onUploadSuccess(res)}
onError={(errMsg) => this.onUploadError(errMsg)}/>
</div>
</div>
4.图片上传成功后执行nUploadSuccess函数,更新state里边subImages数据
//上传图片成功
onUploadSuccess(res){
let subImages = this.state.subImages;
subImages.push(res);
this.setState({
subImages : subImages
});
}
5.删除图片
// 删除图片
onImageDelete(e){
let index = parseInt(e.target.getAttribute(\'index\')),
subImages = this.state.subImages;
subImages.splice(index, 1);
this.setState({
subImages : subImages
});
}