Используйте FileReader's
метод экземпляра readAsDataURL
и передайте ему File
. Он имеет свойство onload
, которому вы можете назначить функцию-обработчик. Это будет вызвано с event
после прочтения входного файла. Свойство target.result
события будет иметь закодированный URI, который затем можно будет использовать в качестве источника изображения.
Вот как это переводится в код
В вашем классе компонентов:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
url;
onChange(event) {
var reader = new FileReader();
reader.onload = (event: any) => {
this.url = event.target.result;
};
reader.onerror = (event: any) => {
console.log("File could not be read: " + event.target.error.code);
};
reader.readAsDataURL(event.target.files[0]);
}
}
И в шаблоне:
<input type="file" (change)="onChange($event)">
<img *ngIf="url" [src]="url">
Вот Рабочий образец StackBlitz для вашей ссылки.