How to make FileReader work with Angular2!!
When reading a file from client side with Angular2 and Typescript,
I try to use FileReader in this way:
var fileReader = new FileReader();
fileReader.onload = function(e) {
console.log("run fileReader.onload");
// ......
}
But it doesn't work at all, this 'fileReader.onload' function will never be called.
Really need a solution for reading files, please help. Thanks
Check this from an online IDE:
preview: https://angular2-butaixianran.c9.io/src/index.html
editor: https://ide.c9.io/butaixianran/angular2
First you have to specify the target of the change event on input form in template:
@View({
template:`
<div>
Select file:
<input type="file" (change)="changeListener($event)">
</div>
`
})
As you can see I binded a changeListener() method to (change) event. My implementation of class:
changeListener($event) : void {
this.readThis($event.target);
}
readThis(inputValue: any) : void {
var file:File = inputValue.files[0];
var myReader:FileReader = new FileReader();
myReader.onloadend = function(e){
// you can perform an action with readed data here
console.log(myReader.result);
}
myReader.readAsText(file);
}
Listener is passing file from event to readThis method. Read this have implemented it's own FileReader. You can also define FileReader in component instead in function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With