【问题标题】:Is it possible to store a base64 image as a string inside a json and send it as a payload to a post request?是否可以将 base64 图像作为字符串存储在 json 中并将其作为有效负载发送到发布请求?
【发布时间】:2022-01-18 20:49:59
【问题描述】:

我想在 mongodb 数据库中保存一个用户文档,其中包括从 react-native 应用程序图像选择器拍摄的照片。我使用 express 作为我的服务器

这就是我的意思。

const res = await fetch('https://myServerUrl', {
    method: 'POST',
    body: JSON.stringify({
        name: 'myname',
        photos: [
            'data:image/png;base64,iVBORw0KGgoAAAANSUhE...' // very long string
            'data:image/png;base64,iVBORdqwweKGgoAAAasdSUhE...' // very long string
        ]
    }),
    headers: {
        "Content-Type": "application/json" // I'm not sure if I should use application/json
    }
    
})

我这样做了,我的服务器崩溃说“请求实体太大”

我应该使用什么来替代?或者我做错了什么?

【问题讨论】:

  • 您可以上传照片文件 - 特别是如果它们很大。您可以选择存储在文档中(最大 16 MB)或 GridFS。

标签: json mongodb react-native express


【解决方案1】:

我发现问题在于快速json解析的限制。

我只是像这样更改限制...

app.use(express.json({ limit: '50mb' }));

缺点是性能不佳。

【讨论】:

  • base64 是重文本,存入数据库不可靠,能否创建接收BLOB 数据的端点并转换为指定的图像格式(PNG、JPEG)并生成文件永久 URL。否则,您可以使用 AWS S3 或 Firebase Storage 等对象云存储
猜你喜欢
  • 2019-04-11
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
相关资源
最近更新 更多