NodeJS 通过HTTP发送文件的最佳方式是什么?

bvpmtnay  于 2024-01-07  发布在  Node.js
关注(0)|答案(1)|浏览(141)

我正在node.js和express中开发web API,我想让用户能够上传图片。我的API使用JSON请求和响应,但当涉及到上传图片时,我不知道哪个选项更好。我可以想到两个想法:

  • 将图像编码为base64字符串,并将其作为JSON发送(如{"image": "base64_encoded_image"}
  • 使用multipart/form请求并在multer等软件包的帮助下处理请求

我一直在阅读一些文章和其他与我的问题相关的问题,我仍然在努力选择一种方法。编码图像并使用JSON发送它会增加大约25%的数据大小(这是我所读到的),但使用multipart对我来说似乎很奇怪,因为我的API上的所有其他端点都使用JSON。

tzxcd3kk

tzxcd3kk1#

multipart/formdata方法比Base64编码方法有一定的优势。
使用Base64方法的首要缺点是数据大小增加了30%,虽然这对于小文件可能不重要,但如果您发送大型文件并将其存储在存储空间中,则肯定会有问题(这会增加你的成本/数据消耗)。另外,像multer这样的软件包为你提供了某些功能,比如-检查文件类型(jpg,png等)和设置文件大小限制等,他们是很容易实现,以及与大量的教程和指南目前在线。
此外,将图像转换为Base64字符串会增加用户机器上的计算开销,特别是当文件很大时。
我建议你使用多部分/形式数据的方法为您的情况。

相关问题