AtImagePicker的onChange拿到的url是这样的blob:http://192.168.1.136:10086/6f0d8da,但这并不是真正的blob,通过fetch可以拿到真正的blob,再用FileReader的readAsDataURL可以得到base64,或FileReader的其他方法拿到其他数据格式
onChange(files) {
let that = this;
for (let i = 0; i < files.length; i++) {
fetch(files[i].url).then(data => {
const blob = data.blob();
return blob;
}).then(blob => {
let reader = new window.FileReader();
reader.onloadend = function () {
const data = reader.result;
// console.log(data);
files[i].url = data;
that.setState({
files
})
};
reader.readAsDataURL(blob);
})
}
}
<AtImagePicker
multiple
files={this.state.files}
onChange={this.onChange.bind(this)}
onFail={this.onFail.bind(this)}
onImageClick={this.onImageClick.bind(this)}
/>