在Node.js中使用Multer进行文件上传

4

我正在使用 nodejs 中的 Multer 版本 1.2.0。每当我尝试上传一个 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');
});

无法理解我哪里错了,请建议一下。 谢谢您的提前帮助。

你尝试在/admin/uploadpicture路由中设置upload.single('field')而不是upload了吗? - bpinhosilva
我必须一次上传四张图片,所以我正在使用 var upload = multer({ storage: storage }).any()。 - viswa
3个回答

8
使用限制选项来增加字段数据限制:
multer({
  limits: { fieldSize: 2 * 1024 * 1024 }
})

refer link


0

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


0
如果在将限制添加到multer后仍然看到此问题,则很可能是因为您正在尝试多次上传相同的图像,并且它无法覆盖先前的图像。我已经上传了一张新图片。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接