在nodejs中使用Multer上传文件

问题描述 投票:0回答:3

我正在使用 Multer 版本 1.2.0 和 NodeJS,每当我尝试在 Base64 中上传图像时出现错误 --Error: Field value too long 错误

Error: Field value too long
at makeError (C:\xampp\htdocs\sitename\node_modules\multer\lib\make-error.js:12:13)
at abortWithCode (C:\xampp\htdocs\sitename\node_modules\multer\lib\make-middleware.js:77:22)
at Busboy.<anonymous> (C:\xampp\htdocs\sitename\node_modules\multer\lib\make-middleware.js:83:34)
at Busboy.emit (events.js:118:17)
at Busboy.emit (C:\xampp\htdocs\sitename\node_modules\multer\node_modules\busboy\lib\main.js:31:35)
at PartStream.onEnd (C:\xampp\htdocs\sitename\node_modules\multer\node_modules\busboy\lib\types\multipart.js:261:15)
at PartStream.emit (events.js:129:20)
at Dicer.onPart (C:\xampp\htdocs\sitename\node_modules\multer\node_modules\busboy\lib\types\multipart.js:120:13)
at Dicer.emit (events.js:107:17)
at Dicer.emit (C:\xampp\htdocs\sitename\node_modules\multer\node_modules\busboy\node_modules\dicer\lib\Dicer.js:80:35) 

代码:

var multer  = require('multer');

var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './photos')
    },
    filename: function (req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now())
    }
})

var upload = multer({ storage: storage }).any()

app.post('/admin/uploadpicture', upload, function(req, res) {
    res.send('Test');
});

无法理解我缺少的地方,请提出任何建议。 预先感谢您。

node.js express multer
3个回答
8
投票

使用限制选项增加字段数据限制:

multer({
  limits: { fieldSize: 2 * 1024 * 1024 }
})

参考链接


0
投票

您可以使用 upload.array('field') 上传任意数量的文件。


0
投票

如果在添加 multer 限制后您仍然看到此问题,可能是因为您尝试多次上传相同的图像,并且在覆盖上一张图像时遇到问题。我上传了一张新照片

© www.soinside.com 2019 - 2024. All rights reserved.