I have:
<input type="file" id="f" name="f" onchange="c()" multiple />
Every time the user selects a file(s), I build a list of all the selected files by pushing each element of f.files
to an array:
var Files = [];
function c() {
for (var i=0;i<this.files.length;i++) {
Files.push(this.files[i]);
};
}
At form submit, f.files
contains only the item(s) from the last select action, so I will need to update f.files
with the list of FileList
items I have accumulated:
const upload=document.getElementById("f");
upload.files = files;
But the second line gives:
Uncaught TypeError: Failed to set the 'files' property on 'HTMLInputElement': The provided value is not of type 'FileList'.
It is not happy that I am assigning it an array. How can I construct a FileList
object from the list of FileList
elements I have earlier collected?
Side question: I thought Javascript uses dynamic types. Why is it complaining about the wrong type here?
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…