我正在node.js和express中开发web API,我想让用户能够上传图片。我的API使用JSON请求和响应,但当涉及到上传图片时,我不知道哪个选项更好。我可以想到两个想法:
- 将图像编码为base64字符串,并将其作为JSON发送(如
{"image": "base64_encoded_image"}
) - 使用
multipart/form
请求并在multer
等软件包的帮助下处理请求
我一直在阅读一些文章和其他与我的问题相关的问题,我仍然在努力选择一种方法。编码图像并使用JSON发送它会增加大约25%的数据大小(这是我所读到的),但使用multipart对我来说似乎很奇怪,因为我的API上的所有其他端点都使用JSON。
1条答案
按热度按时间tzxcd3kk1#
multipart/formdata方法比Base64编码方法有一定的优势。
使用Base64方法的首要缺点是数据大小增加了30%,虽然这对于小文件可能不重要,但如果您发送大型文件并将其存储在存储空间中,则肯定会有问题(这会增加你的成本/数据消耗)。另外,像multer这样的软件包为你提供了某些功能,比如-检查文件类型(jpg,png等)和设置文件大小限制等,他们是很容易实现,以及与大量的教程和指南目前在线。
此外,将图像转换为Base64字符串会增加用户机器上的计算开销,特别是当文件很大时。
我建议你使用多部分/形式数据的方法为您的情况。