首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存从反应本地/世博ImagePicker中提取的图像到Baqend

保存从反应本地/世博ImagePicker中提取的图像到Baqend
EN

Stack Overflow用户
提问于 2017-10-20 18:22:17
回答 1查看 1.3K关注 0票数 0

我有一个困难的时间保存一个形象,是从世博会挑选(反应本地人)。

https://docs.expo.io/versions/latest/sdk/imagepicker.html

React本机似乎不支持将选定的图像上传为blob,但确实有一个base64选项。

守则:

代码语言:javascript
复制
_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."

EN

回答 1

Stack Overflow用户

发布于 2017-10-20 19:21:25

你是对的。React本机不支持二进制数据。不幸的是,Baqend还不支持base64文件上传。

作为解决办法,您有两个选项:

  1. 使用反应本地取块库,它通过直接通过本机代码上传和下载文件,从而绕过不支持二进制文件的限制,并返回对这些文件的引用。您的代码可能类似于以下内容: ImagePicker.showImagePicker(选项,异步(响应) => { const上载=新db.message.UploadFile(‘db.message.UploadFile’,'uploadFetchBlob.jpg') const body = 'RNFetchBlob-‘+ response.uri;RNFetchBlob.fetch('PUT','https://{YOUR-APP-NAME}.app.baqend.com/v1’+ upload.request.path,upload.request.headers,body).then(Res) => { db.File({ parent:‘file’,name:‘uploadFetchBlob.jpg’}.url}};

不幸的是,这不适用于世博客户端,但您必须弹出您的项目并使用“本机代码”。

  1. 第二个选择是不直接使用baqend文件端点,而是将base64字符串上传到baqend模块。在那里,您可以解析base64字符串并将其从后端模块中上传到文件中。您可以在我们的指南中找到这方面的例子。https://www.baqend.com/guide/topics/baqend-code/#handling-binary-data

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46855101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档