A
A
Anatoly2021-06-11 09:12:57
JavaScript
Anatoly, 2021-06-11 09:12:57

How to work with additional adding of files via input (multiple)?

There is a form in which the First Name, Last Name and several photos (multiple) are entered.
For example, I add 2 photos through input, then I want to add 1 more. But when adding the last one, I lose the previous 2.

How to make a handler to solve this issue?
Add. nuance: If the file does not match the size or type, then it is displayed below the input button, but is crossed out. At the same time, it can be removed (I will do this myself later).

<form action="" method="post" enctype="multipart/form-data" name="anketa">
    <input type="file" name="images[]" multiple id="imageUploader">
    <input type="text" name="name" placeholder="Имя" id="name">
    <input type="text" name="lastname" placeholder="Фамилия" id="lastname">
    <input type="submit">
</form>
<script>
    const imageUploader = document.getElementById("imageUploader");
    let imageArrAll = []; // Все загруженные файлы, в том не подходящие по типу или размеру
    let imageArrFilter = []; // Отфильтрованные файлы

    imageUploader.addEventListener('change', (e) => {
        сonst files = e.target.files;
        // Здесь нужно:
        // 1. Объединить добавленные файлы с уже имеющими в массиве (без дублей), и записать в массив imageArrAll
        // 2. Проверить все файлы на соответствие типу и размеру, и записать их в массив imageArrFilter
        // 3. Изменить массив в форме в форме images[] на файлы из п.2. 
    });
</script>

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question