【问题标题】:Prevent upload too big防止上传太大
【发布时间】:2024-01-04 10:09:01
【问题描述】:

我正在将图片的 base64 字符串上传到我的 node.js 服务器。如何在我的 node.js 服务器中防止此文件大于 1mb 和超过 200 像素乘 200 像素(没有实际转换和/或保存文件/字符串)?

这有点像伪代码:

  • 浏览器具有 base64 字符串图像
  • 浏览器向 node.js 服务器发出 POST 请求,并在正文中发送 base64 图像字符串

  • while(node.js 接收请求) { if (request>1mb) 停止接收请求/关闭连接 }

  • 保存文件

谢谢:D

【问题讨论】:

    标签: string node.js upload base64 restriction


    【解决方案1】:

    简答(2014 年 8 月):app.use(bodyParser.json({ limit: '1mb' }))

    就个人而言,我会在node.js 前面部署nginx 并将控制权留给nginx,您在http{...} 块中使用此指令client_max_body_size 1m;

    无法确定 200 像素乘 200 像素,因为大部分为白色的图片可以具有更大的尺寸,但适合 1mb 以内。因此,唯一的解决方法是检查宽度和高度,如果太大则将其缩小。

    注意:base64 编码的图片放大 33%

    【讨论】: