у меня есть:
<input type="file" id="f" name="f" onchange="c()" multiple />
Каждый раз, когда пользователь выбирает файл (ы), я строю список всех выбранных файлов, помещая каждый элемент f.files
в массив:
var Files = [];
function c() {
for (var i=0;i<this.files.length;i++) {
Files.push(this.files[i]);
};
}
При отправке формы f.files
содержит только элемент (ы) из последнего действия выбора, поэтому мне нужно обновить f.files
списком FileList
элементов, которые я накопил:
const upload=document.getElementById("f");
upload.files = files;
Но вторая строка дает:
Uncaught TypeError: Не удалось установить свойство 'files' для 'HTMLInputElement': предоставленное значение не относится к типу 'FileList'.
Не рад, что я назначаю ему массив. Как я могу создать объект FileList
из списка FileList
элементов, которые я ранее собрал?
Дополнительный вопрос: я думал, что Javascript использует динамические типы. Почему он жалуется на неправильный тип здесь?