Конвертировать объект File в <img>Angular - PullRequest
0 голосов
/ 11 января 2019

В угловом компоненте у меня есть такой файл и его изображение:

public file : File;

Как показать изображение в HTML-шаблоне, примерно так:

<img [src]="file"> 

1 Ответ

0 голосов
/ 11 января 2019

Используйте 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 для вашей ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...