我尝试获取files.filename(多重文件)。
我上传了2个文件(1张图片和1个视频),上传效果很好。 req.files.image和req.files.video具有很好的价值
console.log(req.files['image']);
console.log(req.files.video);
值很好:
[ { fieldname: 'image',
originalname: 'TEST-CAMPVIDEO1',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: '/media',
filename: 'TEST-CAMPVIDEO11558696888750.jpg',
path: '\\media\\TEST-CAMPVIDEO11558696888750.jpg',
size: 10271 } ]
[ { fieldname: 'video',
originalname: 'TEST-CAMPVIDEO1',
encoding: '7bit',
mimetype: 'video/mp4',
destination: '/media',
filename: 'TEST-CAMPVIDEO11558696888756.mp4',
path: '\\media\\TEST-CAMPVIDEO11558696888756.mp4',
size: 15535191 } ]
在node.js中
但是当我尝试获取文件名时:
console.log(req.files['image']['filename']);
console.log(req.files.video.filename);
返回未定义
有人回答???
感谢朋友:)
答案 0 :(得分:2)
看起来req.files['image']
的结果是一个数组。因此,在这种情况下,您应该像这样req.files['image'][0].filename
选择其中的第一个也是唯一的项目,它应该可以工作。
该数组仅包含对象,而不包含filename属性。数组中的第一个对象确实具有filename属性
答案 1 :(得分:0)
试试就行了
let filesArray = [];
req.files.forEach(element => {
const file = {
filename: element.filename
}
filesArray.push(file);
});