Everything You Need to Know About Bootstrap File Upload

Everything You Need To Know About Bootstrap File Upload

How do you upload a file onto Bootstrap 4?

Bootstrap is praised by developers for its accessible markup and code reduction practices, with easy drop-down file uploads on many browsers. Now the Bootstrap 5 update provides additional features driven by Material Design packed into file input controls. 

By extension, these snippets also provide users with an area to design, preview, and test custom buttons that can upload files of any size. Moreover, a Bootstrap file upload demands you import only a few components while offering a lot of flexible configuration settings. 

Using the Bootstrap File Input, you can upload from a variety of file types. These include a collection of images, lengthy documents, pre-recorded videos, or even complete applications. By clicking on the “Choose File” button, you pop up a window that displays your local storage drive. 

The opened file’s path then replaces the “No file chosen” field, to load the file onto a content block for future drag and drops. 

What are some types of file inputs supported by Bootstrap?

Bootstrap 5 currently accepts common file formats such as JPG, PNG, and GIF for images, TXT, DOC, and CSV for plain text, and of course, JSON, HTML, CSS, and JS for web design. 

According to the Bootstrap documentation, this file input control is organized into five different categories which we will explain in detail below. 

We define the content upload elements as follows:

  • Default file input
  • Multiple file input
  • Disabled file input
  • Small file input
  • Large file input

While single file mode is the default option for adding a file object, users can still get multiple files and return them as an array of file instances. Granted, you could select an entire directory containing a hierarchy of folders, proving that the upload process is scalable with respect to handling larger server loads. 

If you are wondering about custom styles, sizing, and focus states, these are available once you’ve configured the behavior of each input through its class. You can also change the default message of the file upload or implement a drag and drop function. 

How do you set up a standard Bootstrap upload input?

Here is how you create a basic file input with the correct syntax. Simply add a .form-control-file class that wraps around an input element: 



  <div class="form-group">

    <input type="file" class="form-control-file">




The custom file input differs slightly in that you need to include a .custom-file-input class above the label attribute with a .custom-file-label class:

<div class=”custom-file”>

<input type=”file” class=”custom-file-input” id=”customInput” required>

<label class=”custom-file-label” for=”customInput”>Choose file…</label>


You can refer to the Bootstrap source code on form controls from getBootstrap whenever you want to preview the results without styling. That said, to build most modern websites, visuals are still important when positioning your blocks of content. 

Select a direct file path

<div class="mb-3">

  <label for="formFile" class="form-label">Default file input example</label>

  <input class="form-control" type="file" id="formFile">


Select multiple files that are counted

<div class="mb-3">

  <label for="formFileMultiple" class="form-label">Multiple files input example</label>

  <input class="form-control" type="file" id="formFileMultiple" multiple>


Completely disable the file input

<div class="mb-3">

  <label for="formFileDisabled" class="form-label">Disabled file input example</label>

  <input class="form-control" type="file" id="formFileDisabled" disabled>


Shrink down the button and form

<div class="mb-3">

  <label for="formFileSm" class="form-label">Small file input example</label>

  <input class="form-control form-control-sm" id="formFileSm" type="file">


Enlarge the button and form


  <label for="formFileLg" class="form-label">Large file input example</label>

  <input class="form-control form-control-lg" id="formFileLg" type="file">


Generally speaking, Bootstrap has made CSS editing a nearly effortless task. You just have to specify the class name plus the properties to toggle the size, color, spacing, and where the snippet belongs on your web page. 

But to finish up your upload component, import the whole container with the ordered divs nested inside it, like in this example:

<div class="container">

  <div class="input-group">

    <div class="custom-file">

      <input type="file" class="custom-file-input" id="customFileInput" aria-describedby="customFileInput">

      <label class="custom-file-label" for="customFileInput">Select file</label>


    <div class="input-group-append">

      <button class="btn btn-primary" type="button" id="customFileInput">Upload</button>




The last step is to insert code between the <script> tags, which creates a querySelector event to fetch the file located at index 0 while proceeding to declare a variable that targets the next file. 


  document.querySelector('.custom-file-input').addEventListener('change', function (e) {

    var name = document.getElementById("customFileInput").files[0].name;

    var nextSibling = e.target.nextElementSibling

    nextSibling.innerText = name



What can you do with a Bootstrap file upload?

A Bootstrap file upload is a valuable web design asset because it allows users to import file data onto a website. In fact, many creative services offer a visual editor where media can be uploaded and resized to fit a canvas. 

There are lots of plugins that let a user upload content to create new business forms, submit a personalized profile, share them on a cloud drive, or add product images on a digital store. 

The importance of a file uploader should not be ignored as companies also use them to manage their workflows, and determine whether documents can be sent or presented at meetings. 

Enterprise dashboards require file uploaders whenever they need to transfer large volumes of files in an efficient manner. Developers use file uploads to send individual files to a repository to improve the utility of their programs. 

If you’re searching for a well-rounded file uploader, then Filestack is the option to consider since it’s easy to set up with minimal configuration. It also has its own developer portal. There are tutorials that walk you through the best methods for uploading content.

Filestack’s primary features include:

  • Cloud integrations
  • Basic/Multipart uploads
  • Drag and Drop with UMB module
  • The FilestackDnD constructor
  • Custom Source functionality
  • S3 Cloud storage

Sign up for a new account with Fliestack to receive 500 uploads, 1000 transformations, and 1 GB of storage space free of charge. 

Read More →