godsplane
@godsplane

Почему при попытке удаления файла из fileList по индексу удаляются так же все остальные файлы?



Попробуйте добавить несколько файлов и нажать на кнопку удаления. Удалятся все файлы, а нужно удалять только то тот рядом с которым кнопка крестика
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Тип FileList нельзя редактировать, после создания он неизменяем. Максимум, можно создать новый FileList используя некоторые файлы из старого и то это будет считать грязным хаком и так не принято делать.

Допустим если в переменных file1 и file2 лежат единичные файлы, то объединить их в FileList можно так:
var dt  = new DataTransfer(); // Создадим объект для работы с drag and drop

dt.items.add(file1); // Добавим первый файл
dt.items.add(file2); // Добавим второй файл

var file_list = dt.files; // Извлечем FileList

console.log('Коллекция файлов создана:');
console.dir(file_list);

// Вставим созданную коллекцию в реальное поле:
document.querySelector('input[type="file"]').files = file_list;

Но повторюсь, так лучше не делать. Правильная практика здесь это в принципе не пытаться редактировать тип FileList, а создать свой обработчик файлов. Само поле input использовать чисто для получения файла, но не для отображения и хранения! Логику для отображения пишем отдельно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы