【发布时间】:2023-04-07 22:45:01
【问题描述】:
我正在使用 Node.js/Express 并通过 AJAX 从网页向服务器提交图像。图像已被处理和裁剪,所以我使用生成的 dataURL 并通过这样的发布请求将其发送到我的服务器。 dataURL 完全正确且准确,并且包含应有的图像。所以我只是将它发送到服务器。
var fd = new FormData();
fd.append('dataURL',dataURL);
console.log('dataURL length:',dataURL.length);
$.ajax({
type: "POST",
url: `/pwa/update-attachment`,
data: fd,
contentType: false,
processData: false,
success: function(result)
{
}
});
在服务器端没有错误,但 dataURL 参数被截断为 1mb。作为参考,我的服务器设置为使用 bodyparser 接受多部分表单数据,如下所示。我尝试使用 bodyParser 的大小限制(高或低),但在这种情况下似乎都没有生效。
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: false })); // support encoded bodies
我收到这样的帖子:
router.post('/update-attachment',(req,res) => {
console.log('dataurl:',req.body.dataURL.length);
...
});
dataURL 被截断为 1048576 字节。非常适合较小的图像。
【问题讨论】:
-
我实际上已经查看了限制参数,但它似乎不适用于这里。这就是为什么我认为还有一些我不知道的事情正在发生。我实际上在其他情况下收到了“实体太大”错误,但是无论我将限制设置为高还是任意低(所以它会失败并且我可以显示参数正在被识别),它似乎没有影响在这里。
标签: node.js ajax express body-parser