Let's continue our focus on images and discuss the File API. We can write code to preview the image before the user uploads it.
Ok, The File API is a set of APIs that allows web applications to work with file objects in the browser. It provides a way to handle file upload operations and access the contents of selected files. The File API consists of the following main interfaces and methods:
- File object: Represents a file that has been selected by the user or obtained from other sources like drag and drop operations or the
<input type="file">element. - FileList object: A list of
Fileobjects, usually obtained from a file input element or a drag and drop event. - FileReader object: Allows you to read the contents of a
Fileobject asynchronously. It provides methods likereadAsText(),readAsDataURL(),readAsArrayBuffer(), andreadAsBinaryString()to access the file content in various formats. - Blob object: A raw data type that represents a binary large object (BLOB). It can be used to create File objects or handle binary data.
Here's an example of how you can work with the File API to display an image before file upload:
In this example:
- We add an
accept="image/*"attribute to the file input element to allow only image files to be selected. - We create a
<div>element with an idimageContainerwhere we'll display the image. - Inside the
changeevent listener, we first check if a file has been selected and if it's an image file. - We create a new
FileReaderinstance and set up anonloadevent listener. - Inside the
onloadevent listener, we create a newImageobject and set itssrcto the result of theFileReader(which is a data URL representing the image data). - We set up another
onloadevent listener for theImageobject. - Inside this second
onloadevent listener, we clear the contents of theimageContainerdiv and append theImageelement to it, displaying the image.
This code will display the image on the webpage without any manipulation. If you want to perform any image manipulation, you can add that logic inside the second onload event listener before appending the Image element to the imageContainer.
Note that the readAsDataURL() method is used here because it converts the image file into a data URL, which can be directly set as the src of an Image object. This approach works well for displaying images.


-min.png)