上传 base64 编码的图像是一种不好的做法吗?

Mat*_*res 7 rest upload base64 backend

使用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...',
}
Run Code Online (Sandbox Code Playgroud)

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

cod*_*ane 6

普遍接受的结果的Base64编码的二进制图像是一个结果约30%大于原来的。如果服务器限制为 2MB,则当您通过编码增加图像时,实际上将其限制为 1.4MB。Base64 不是一种压缩方法,它只是一种通过HTTP.

如果您可以控制服务器,请改为接受 gzip 压缩的二进制数据,或者如果您可以将图像放在某处,请将其 url 发送到请求中,服务器可以下载它。


bem*_*bas 4

Bas64 编码图像是小尺寸 (KB) 图像的良好实践。对于较大尺寸的图像,您可能会出现尺寸错误。

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

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

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