These APIs are used to read file locally, handling images etc. Some of the specifications are as listed below:
1. File: Provides read-only information about the file like name, filesize, mimetype etc.
2. FileList: Represents an array of individually selected files from the local system
3. Blob: Represents the raw binary data and allows access to range of bytes within the data which can be used for slicing file
4. FileReader: Provides methods to read data from file or Blob
Step 1: Open Visual Studio (or you can use any HTML editor), and create a new application. In this application add a new HTML page and add the following HTML markup in it.
<style type="text/css">
#filecontents {
border:double;
overflow-y:scroll;
height:400px;
}
</style>
<body>
Please Select text file of which contents are to be read:
<input type="file" id="txtfiletoread" />
<div>The File Contents are as below:</div>
<div id="filecontents">
</div>
</body>
Note: Ideally you should put the CSS in a separate file and link the file here, but we will keep the CSS in the same page for this example
Step 2: In the project add a new folder of name Scripts and add JavaScript file of name FileReaderLogic.js in it, write the below script in it:
window.onload = function () {
//Check the support for the File API support
if (window.File && window.FileReader && window.FileList && window.Blob) {
var fileSelected = document.getElementById('txtfiletoread');
fileSelected.addEventListener('change', function (e) {
//Set the extension for the file
var fileExtension = /text.*/;
//Get the file object
var fileTobeRead = fileSelected.files[0];
//Check of the extensio match
if (fileTobeRead.type.match(fileExtension)) {
//Initialize the FileReader object to read the 2file
var fileReader = new FileReader();
fileReader.onload = function (e) {
var fileContents = document.getElementById('filecontents');
fileContents.innerText = fileReader.result;
}
fileReader.readAsText(fileTobeRead);
}
else {
alert("Please select text file");
}
}, false);
}
else {
alert("Files are not supported");
}
}
The code first check whether the browser supports File APIs or not. If they are supported then the code reads the File element and subscribe to the change event of it. The change events implementation is as below:
- Set the file extension to text files only.
- It get the file object which is selected by the File element.
- If the file extension is text then the FileReader object is initialized.
- The File is then read using readAsText() method of the FileReader object.
- The file contents are then displayed in the div of name filecontents.
View the page in browser, it will be as below:
Select the file using file element and the result will be as shown here:
Conclusion: The HTML 5 File API provides an standard way to interact with local file system with less complexity.
Tweet
1 comment:
how to give a constant file name as input
Post a Comment