反应本机图像获取/上传
Posted
技术标签:
【中文标题】反应本机图像获取/上传【英文标题】:React Native Image Fetch/Upload 【发布时间】:2019-02-05 15:28:48 【问题描述】:问题陈述:
我正在将图像 uri base64 从我的 react-native 应用程序上传到我的 java 后端服务器。我的后端将 URI 字符串转换为字节数组并将其存储在 mysql 数据库中(带有 BLOB)。到目前为止一切都很好!但是当我从数据库中读取/获取图像时,我会将它们转换回 base64 图像 uri 字符串,以将它们显示给用户(使用我的 Rest api 获取)。问题是,我的 Rest API (GET) 可以处理 2-3 张图像,然后内存不足......我该怎么办?这是因为 base64 uri 字符串对于 Rest API 来说显然太长了......
有什么解决办法吗?
【问题讨论】:
【参考方案1】:在您的后端,您应该将图像存储为文件,而不是字节数组。使用this之类的东西将b64转换为java中的文件(我个人不知道该怎么做)
完成此操作后,您的后端必须向您返回文件的 url,以便您可以使用来自 react-native
的 Image
组件在您的应用中显示它。
【讨论】:
但是如何将它存储在数据库中?我将它作为字节数组存储在 MySQL 中,然后当我想要取回它时返回到文件中?但是我不能用图像返回数据(在 Rest 中),因为它是来自 Rest API 的类似 JSON 的输出。数据是来自用户的帖子,所以我必须返回。其他的反应原生? 将其存储到后端的文件中,保存路径并将其转换为 url。然后,将 URL 保存在您的数据库中。在 json 中,发送对您有意义的数据并添加一个字段 url_image ,它是您数据库中的文件 url。您将不得不主要在后端进行返工。我不能帮你写代码。以上是关于反应本机图像获取/上传的主要内容,如果未能解决你的问题,请参考以下文章
网络请求失败对 https 图像上传 Android 做出本机反应
通过 aws Amplify 使用 Storage 类对本机图像上传进行反应