Node.js I';我对使用multer-s3将图像上传到aws s3 bucket完全不感兴趣
下面代码中的“upload.array('photos',3)”表示什么 我的html代码。(为简洁起见,代码减少) 输出:Node.js I';我对使用multer-s3将图像上传到aws s3 bucket完全不感兴趣,node.js,express,multer-s3,Node.js,Express,Multer S3,下面代码中的“upload.array('photos',3)”表示什么 我的html代码。(为简洁起见,代码减少) 输出: Cannot read property 'length' of undefined 有两个问题: 文件字段名为“pic”,而不是“photos”(这是Express端使用的字段名)。更改一个名称或另一个名称 需要在标记上显式设置enctype=“multipart/form data”属性,否则浏览器将以application/x-www-form-urlenco
Cannot read property 'length' of undefined
有两个问题:
- 文件字段名为“pic”,而不是“photos”(这是Express端使用的字段名)。更改一个名称或另一个名称
- 需要在
标记上显式设置
属性,否则浏览器将以application/x-www-form-urlencoded的形式发送表单,其中不包括文件输入数据enctype=“multipart/form data”
进行这些更改后,应按照
multer
文档中的概述填充req.files
。感谢您的回复mscdex,“upload.array(“pic”,3)”。。。那么3代表的是。。。。。解释它,它是maxCount
参数(强制该文件字段名的最大文件限制)。相同的错误“无法读取未定义的属性'length'”,即使在将照片更改为pic之后。。。。。对不起,我已经更新了我的答案,以包含关于另一个问题的信息。@mscdex嗨,你能看一下这个问题吗。非常感谢你的帮助。
AWS.config.update({
accessKeyId: "xxxxxxxxxxxxx",
secretAccessKey: "yyyyyyyyyy",
"region": "zzzzzzzzz" ,
signatureVersion: 'v4'
});
var s3=new AWS.S3();
var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'imgcontainer',
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
app.post('/upload', upload.array('photos', 3), function(req, res, next) {
res.send('Successfully uploaded ' + req.files.length + ' files!')
})
Cannot read property 'length' of undefined