Upload Image HTML

Upload Image HTML: How to Display Uploaded Image in HTML Using JavaScript?

Before we dive into the specifics of displaying uploaded images, let’s have a brief overview of HTML and JavaScript. HTML (Hypertext Markup Language) is the standard markup language used to structure content on the web. JavaScript, on the other hand, is a programming language that enables dynamic behavior on web pages.

To display an uploaded image in HTML using JavaScript, you can follow these steps:

  1. Create an HTML input element of type “file” to allow the user to select an image file. Give it an id attribute to access it later:
<input type="file" id="uploadImage">

  1. Create an HTML image element to display the uploaded image. Give it an id attribute as well:
<img id="imagePreview">
  1. Add an event listener to the input element that triggers when the user selects a file. Inside the event listener, retrieve the selected image file and set it as the source for the image element:
const uploadImage = document.getElementById('uploadImage');
const imagePreview = document.getElementById('imagePreview');
uploadImage.addEventListener(‘change’, function(event) {
const file = event.target.files[0];
const reader = new FileReader();

reader.onload = function(e) {
imagePreview.src = e.target.result;


In the above code, the FileReader API is used to read the contents of the selected file. The readAsDataURL() method reads the file and converts it into a data URL, which can be set as the source (src) of the image element.

Now, when the user selects an image file, it will be displayed in the <img> element with the id “imagePreview”.

HTML Input Element for File Upload

To allow users to upload images, we need to create an HTML input element of type “file.” This input element provides a file selection dialog, enabling users to choose an image file from their local device.

Handling the File Upload Event

When a user selects an image file, we need to handle the file upload event in JavaScript. By listening to the event, we can perform various operations on the uploaded file, such as reading its content and displaying it on the web page.

Reading the Uploaded Image File

To display the uploaded image, we must first read its content. JavaScript provides the FileReader API, which allows us to read files asynchronously. By using the appropriate methods provided by this API, we can extract the image data from the uploaded file.

Creating an Image Element

Once we have the image data, we need to create an HTML image element dynamically. JavaScript provides the createElement method to create elements programmatically. We can use this method to create an image element that will hold the uploaded image.

Displaying the Uploaded Image

To display the uploaded image, we must set the src attribute of the image element to the data URL representing the image data. This data URL is generated by the FileReader API when we read the image file.

Resizing and Optimizing the Uploaded Image

In some cases, it might be necessary to resize or optimize the uploaded image to improve performance or fit specific design requirements. JavaScript libraries such as canvas, ImageMagick, or Cloudinary can help achieve these tasks. By utilizing these libraries, you can resize, crop, or compress the uploaded image as needed.

Handling Error Scenarios

When working with file uploads, it is crucial to handle error scenarios gracefully. For example, you might encounter cases where the uploaded file is not an image or exceeds the allowed file size. By implementing appropriate error handling, you can inform users about the issue and provide guidance on how to rectify it.

Implementing Image Previews

To enhance the user experience, you can implement image previews before the upload is completed. This allows users to see a preview of the selected image before submitting it. By dynamically updating the image element’s source, you can provide users with immediate feedback on their selection.


In this article, we explored how to display uploaded images in HTML using JavaScript. We covered the essential steps involved, including handling the file upload event, reading the image file, creating an image element, and displaying the image on the web page. By following these steps, you can create a seamless and engaging user experience for image uploads on your website.


Q: How can I style the uploaded image?

A: You can style the uploaded image using CSS. By applying CSS rules to the image element, you can control its size, position, borders, and other visual properties.

Q: Can I display multiple uploaded images?

A: Yes, you can display multiple uploaded images by dynamically creating image elements for each uploaded file. You can store the image data in an array and loop through it to create and display multiple images.

Q: Is it possible to upload images asynchronously?

A: Yes, it is possible to upload images asynchronously using techniques such as AJAX (Asynchronous JavaScript and XML) or the more modern approach of using the Fetch API. These methods allow you to upload files without reloading the entire web page.

Q: What other libraries can I use for image manipulation?

A: Besides the mentioned libraries, other popular options for image manipulation include Fabric.js, Jimp, and Sharp. These libraries offer advanced features for resizing, cropping, rotating, and applying filters to images.

Q: How can I validate the file type and size before uploading?

A: You can validate the file type and size before uploading by checking the file’s properties in JavaScript. File type validation can be done by examining the file’s extension or MIME type. For size validation, you can compare the file size against a predefined maximum limit.

Remember, when implementing file uploads, always prioritize security and validate user inputs thoroughly to prevent potential vulnerabilities or attacks.