2015-06-24 62 views
5

我收到一个Javascript对象req.files。该对象可以包含多个文件。 req.filesobject而不是array通过将字符串附加到对象来生成JavaScript对象名称

所以,如果用户增加了三个文件,对象将是这样的:

req.files.file0 
req.files.file1 
req.files.file2 

其中file0, file1等是另一个对象。

用户最多可以添加15个文件。我如何检查循环这些对象&从req.files.fileX中读取信息?我需要支持IE 11 & chrome。

+1

'req.files [ “文件” + I]' – Satpal

回答

6

可以使用括号表示法通过字符串访问对象的属性。试试这个:

for (var i = 0; i < Object.keys(req.files).length; i++) { 
    var file = req.files['file' + i]; 
    if (file) { 
     // use file here... 
    } 
} 

Example fiddle

+0

这是完美的! – SharpCoder

+0

很高兴帮助:) –

1

所以我假设你的REQ对象是这样的:

var req = { 
    files: { 
    file0: {}, 
    file1: {}, 
    file2: {}, 
    //... 
    file14: {} 
    } 
}; 

如果是这样,您可以参考该文件是这样的:req.files['file0']

所以你的循环可能看起来像这样:

for (prop in req.files) { 
    var file = req.files[prop]; 
} 

但是,你甚至不需要使用循环:

var getReqFile = function(x){ 
    return req.files['file' + x] || null; 
} 
var file = getReqFile(5); 
相关问题