【问题标题】:Is base64 encoded image uploading a bad practice?base64 编码图像上传是一种不好的做法吗?
【发布时间】:2019-03-30 23:35:39
【问题描述】:

使用base64编码上传(只上传)图片到服务器有问题吗?考虑到大约 1-2 MB 的常见图像大小,而不是图标大小的图像。这是一个不好的做法吗?它应该总是使用表单数据来上传图片吗?

图像将在 POST 正文(JSON 内容类型)中与其他数据一起发送,例如:

// POST /signup
{
  email: 'example@email.com',
  password: 'example@email.com',
  name: 'Example Name',
  picture: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAA...',
}

一旦进入服务器,它将被发送到 AWS 存储桶并以二进制文件的形式提供,而不是 base64 编码的字符串。

【问题讨论】:

  • 请添加更多关于您想要的实现的详细信息,以便我们更好地了解使用 base64 的适用性:它是大图像还是小图像?您将如何执行上传? (ajax、表单数据等)
  • @MarcSances 你是对的。固定。

标签: rest upload base64 backend


【解决方案1】:

Base64 编码二进制图像的generally accepted result 比原始图像大约大 30%。如果服务器限制为 2MB,则在通过编码增加图像时,您实际上被限制为 1.4MB 图像。 Base64 不是一种压缩方法,它只是一种通过HTTP 将二进制数据发送到服务器的方法。

如果你可以控制服务器,让它接受 gzip 压缩的二进制数据,或者如果你可以把图像放在某个地方,在请求中发送它的 url,服务器可以下载它。

【讨论】:

    【解决方案2】:

    Bas64 编码图像是小尺寸 (KB) 图像的良好做法。 对于更大尺寸的图像,您可能会遇到尺寸错误。

    虽然如果您想使用 (MB) 大小的图像,我建议将它们作为缩略图传递。

    缩略图是图片或视频的缩小版本,用于帮助识别和组织它们,对图像的作用与普通文本索引对单词的作用相同

    https://www.npmjs.com/package/image-thumbnail

    【讨论】:

      【解决方案3】:

      是的,我认为在上传图片时使用base64 是可以的,因为您在应用程序中使用了 api。您需要转换为物理图像并获取文件名并将其存储在您的数据库中。

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2011-12-22
        • 1970-01-01
        • 2020-04-24
        • 2019-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多