The FileReader object is a powerful tool for asynchronously reading the content of a file. It provides four reading methods and an abort method to control the reading process. Let’s explore the different methods and how to use them:
FileReader Reading Methods
readAsText()
: This method loads the content of a blob as a text string. For example, you can extract the text from a file and display it in an HTML element.
const reader = new FileReader()
reader.onload = event => {
const text = reader.result
document.getElementById('content').innerHTML = text
}
reader.onerror = (e) => {
console.error(e)
}
reader.readAsText(file)
Example: tag1, tag2
readAsDataURL()
: This method loads the content of a blob into a Data URL. It’s commonly used to display images or other binary data.
const reader = new FileReader()
reader.onload = event => {
const dataURL = event.target.result
document.getElementById('image').src = dataURL
}
reader.readAsDataURL(file)
Example: tag3, tag4
readAsArrayBuffer()
: This method loads the content of a blob into an ArrayBuffer. This is useful when dealing with binary data, such as processing audio or video files.
const reader = new FileReader()
reader.onload = event => {
const buffer = reader.result
const data = new Int32Array(buffer)
// Process the data...
}
reader.onerror = (e) => {
console.error(e)
}
reader.readAsArrayBuffer(file)
Example: tag5, tag6
readAsBinaryString()
: This method is deprecated and should not be used in new projects. It reads the content of a blob as a binary string.
FileReader Events
The FileReader object also exposes several events that allow you to monitor the progress and outcome of the reading operation:
onload
: Triggered when the reading successfully ends.onloadstart
: Triggered when the reading starts.onprogress
: Triggered when the reading is in progress.onloadend
: Triggered when the reading ends, whether successfully or not.onerror
: Triggered when an error occurs.onabort
: Triggered when the reading is aborted.
These events enable you to perform actions based on the different states of the reading operation.
Now that you understand the FileReader object and its methods, you can leverage its power to read and manipulate file content in your web applications.
Please note that the readAsBinaryString()
method is deprecated and not recommended for use in new projects.