MULTER-req.files.filename返回未定义

时间:2019-05-24 11:24:30

标签: node.js multer

我尝试获取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);

返回未定义

有人回答???

感谢朋友:)

2 个答案:

答案 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);
});

multiple files uploads using multer