Множественный выбор при загрузке html-файла

#html #file-upload

Вопрос:

Я создаю базовое приложение, в котором я разрешаю пользователю загружать изображения, но я хочу, чтобы пользователь загружал не более 2 изображений. Так что есть идеи, как мне это сделать.

Ответ №1:

Вам необходимо использовать несколько атрибутов во входном теге файла типа <input id="files" type="file" multiple>
Это решает только половину проблемы, так как множественное число позволяет использовать любое количество файлов.

Вы можете решить эту проблему, используя следующие способы:

  • Предоставьте пользователю информацию о том, что разрешено использовать только 2 файла.
  • Иногда пользователь может выбрать более 2 файлов даже после получения информации, в этом случае используйте javascript, чтобы сообщить об ошибке
 <div class="wrapper">
  <label for="files">Upload Images
    <span>Maximum of only 2 files allowed
    </span>
  </label>
  <input type="file" id="files" multiple>
  <div id="error" class="error">
    Maximum of 2 files only can be uploaded
  </div>
</div>
<style>
.wrapper {
  display: flex;
  justify-content: center;
  flex-direction: column;
}
.wrapper label {
  color: blue;
}
label > span {
  display: block;
  font-size: 10px;
}
.error {
   color: red;
   font-size: 20px;
   display: none;
 }
</style>

<script>
 files.addEventListener('change', (e) => {
  if(e.target.files.length > 2) {
    error.style.display = "block"
  } else {
    error.style.display = "none"
  }
})
</script>
 

Вот ссылка на кодовый файл https://codepen.io/shivakumarjakkani/pen/vYmXVxy

Ответ №2:

вы можете использовать несколько элементов, например:

   <input type="file" id="files" name="files" multiple><br><br>