我有一个困难的时间保存一个形象,是从世博会挑选(反应本地人)。
https://docs.expo.io/versions/latest/sdk/imagepicker.html
React本机似乎不支持将选定的图像上传为blob,但确实有一个base64选项。
守则:
_pickImage = async () => {
let pickerResult = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
base64: true,
aspect: [4, 4],
});
this._handleImagePicked(pickerResult);
};
_handleImagePicked(pickerResult) {
const uri = pickerResult.base64;
const img = new db.File({ name: 'test.jpg', data: uri, type: 'base64', mimeType: 'image/jpg' });
db.UserData.load(this.state.UserDataID).then(UserData => {
img.upload({ force: true }).then((file) => {
UserData.photo = "https://remarkable-apple-95.app.baqend.com/v1" + file.id;
alert(file.id)
return UserData.update();
},
(error) => { alert(error); }
);
});
}当我console.log(pickerResult.base64)时,我得到一个看起来像base64的超长字符串,但是当运行它时,img.upload抛出错误,它表示"PersistentError: An unexpected persistent error occurred."
发布于 2017-10-20 19:21:25
你是对的。React本机不支持二进制数据。不幸的是,Baqend还不支持base64文件上传。
作为解决办法,您有两个选项:
不幸的是,这不适用于世博客户端,但您必须弹出您的项目并使用“本机代码”。
希望这能有所帮助
https://stackoverflow.com/questions/46855101
复制相似问题