Форма загрузки изображений Bootstrap 4: несколько методов создания форм загрузки изображений

Вот несколько способов создания формы загрузки изображений с помощью Bootstrap 4:

Метод 1: использование HTML-элемента input с типом file:

<form>
  <div class="form-group">
    <label for="imageUpload">Select an image:</label>
    <input type="file" class="form-control-file" id="imageUpload">
  </div>
  <button type="submit" class="btn btn-primary">Upload</button>
</form>

Метод 2: использование пользовательского ввода файла Bootstrap:

<form>
  <div class="custom-file">
    <input type="file" class="custom-file-input" id="imageUpload">
    <label class="custom-file-label" for="imageUpload">Choose an image</label>
  </div>
  <button type="submit" class="btn btn-primary">Upload</button>
</form>

Метод 3. Улучшение ввода файла с помощью JavaScript и проверки формы Bootstrap:

<form>
  <div class="custom-file">
    <input type="file" class="custom-file-input" id="imageUpload" required>
    <label class="custom-file-label" for="imageUpload">Choose an image</label>
    <div class="invalid-feedback">Please choose an image.</div>
  </div>
  <button type="submit" class="btn btn-primary">Upload</button>
</form>
<script>
  // Add Bootstrap's form validation behavior
  (function () {
    'use strict';
    window.addEventListener('load', function () {
      var forms = document.getElementsByClassName('needs-validation');
      var validation = Array.prototype.filter.call(forms, function (form) {
        form.addEventListener('submit', function (event) {
          if (!form.checkValidity()) {
            event.preventDefault();
            event.stopPropagation();
          }
          form.classList.add('was-validated');
        }, false);
      });
    }, false);
  })();
</script>