首页 > 解决方案 > 从前端到后端的大图像,无需 base64 编码

问题描述

我们有前端作为谷歌 PWA应用程序和后端的 REST API。我们需要将我们的 PWA 用户选择的一些非常大的图像发送到后端(数十兆字节大小)。目前,PWA 用户从手机文件系统中选择图像(因此他可以在 PWA UI 的手机屏幕上看到它),然后按“上传”按钮通过 REST API 将其发送到后端。

最初为了快速实现此功能,我们通过网络以 base64 格式发送图像数据,并将其以与字符串相同的格式存储在 DB 字段中。

现在我们决定摆脱 base64 编码文件发送,并且在后端我已经实现multipart/form-data了以二进制格式接收,正如本网站多次建议的bytea那样,并将其存储在带有类型的 DB 字段中。出色的!

但是,出于某种原因,我们的前端开发人员告诉我,他不能简单地获取二进制图像数据,因为 PWA UI 在从文件系统加载后会将其转换为 base64 本身。UI DOM 模型<img>以这种格式将图像保存在元素中。因此,要将数据从 UI 发送到后端,他需要事先进行 base64 解码。

我的问题是如何在没有 base64 编码的情况下在 UI 中以二进制格式显示图像,或者如何避免同时在前端保留 base64 和二进制数据(记住我们的图像大小为几十兆字节)?

标签: javascriptrestfile-uploadbase64frontend

解决方案


推荐阅读