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)}
/>

本文介绍如何使用AtImagePicker组件处理图片,包括通过fetch获取真实blob数据,利用FileReader读取并转换为base64格式,实现图片的预览和上传功能。
943

被折叠的 条评论
为什么被折叠?



