Преобразовать объект файла в <img> Angular

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

public file : File;

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

<img [src] = "file"> 

Ваш файл - изображение?

Artem Arkhipov 11.01.2019 17:00

да это @artemArkhipov

Alexis Brunet 11.01.2019 17:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
2
3 601
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте метод 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.info("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">

Here's a Working Sample StackBlitz for your ref.

Это наиболее лаконичный и понятный ответ. Благодарю вас <3.

Stevers 16.10.2021 22:02

Другие вопросы по теме