I want to encode the uploaded files to base64 so that I can pass them to the request. The problem is that I\'m using Angular 2 with Typescript and I couldn\'t find any info
A possible solution using Rxjs
import { fromEvent } from 'rxjs';
import { pluck } from 'rxjs/operators';
onUploadImage(event) {
if (event.target.files.length > 0) {
const fileReader = new FileReader();
let imageToUpload = event.target.files.item(0);
this.imageToBase64(fileReader, imageToUpload)
.subscribe(base64image => {
// do something with base64 image..
});
}
}
imageToBase64(fileReader: FileReader, fileToRead: File): Observable {
fileReader.readAsDataURL(fileToRead);
return fromEvent(fileReader, 'load').pipe(pluck('currentTarget', 'result'));
}