是否可以组合两个FileList对象?

时间:2015-05-07 20:47:07

标签: javascript object filelist

我有一个FileList对象,它保存以前上传的文档。我正在尝试使用另一个函数通过使用另一个FileList对象向此集合添加更多文件,因此我需要将辅助FileList对象“追加”到主要对象上。怎么可能实现这个目标?

4 个答案:

答案 0 :(得分:9)

您必须先将FileList个对象转换为数组,之后您只需concat多个数组。

function toArray(fileList) {
    return Array.prototype.slice.call(fileList);
}

var joined = toArray(fileListA).concat(toArray(fileListB));

答案 1 :(得分:1)

const filesArray = [...filesList1, ...filesList2];
console.log(filesArray) // [File, File, File, File, File, ...]

答案 2 :(得分:0)

所选答案将完全阐明路径。临时变量也可以在这里使用,如下所示:

 var temp = files
 files=Array.prototype.slice.call(temp).concat(Array.prototype.slice.call(event.target.files))

还可以在React中将文件设置为状态,可以在handleInputChange函数中使用以下代码:

 var temp = this.state.files;         
 this.setState({
        files: Array.prototype.slice.call(temp).concat(Array.prototype.slice.call(event.target.files))
   })

答案 3 :(得分:0)

var fileLists = [fileListA, fileListB];
var files = fileLists.reduce(function(a, c) {
    return Array.prototype.concat.call(Object.values(a), Object.values(c))
})