Как получить результаты чтения файлов - PullRequest
0 голосов
/ 22 сентября 2019

Итак, у меня есть событие onchange в моем html, которое получает изображение от пользователя и мне нужно преобразовать его в URL-адрес данных для отправки через socket.io и сохранения в базе данных.Как я могу получить результаты моего объекта чтения файлов.Я не знаю, как передать обратный вызов

Что мне нужно сделать, это добавить функцию обратного вызова в событие загрузки файлового ридера, чтобы я мог установить свою переменную изображения в URL данных, чтобы затем отправить его через сокет.Просто нужна помощь в получении результатов из программы чтения файлов в мою глобальную переменную // HTML

<input type = 'file' (change) = "setpreview($event)" value = 'upload photo'>

// код js.

setpreview(event) {
  var img = <File>event.target.files[0];
  var reader = new FileReader();
  reader.onload = function() {
    console.log(reader.result);
  }

  reader.readAsDataURL(img);
}

1 Ответ

0 голосов
/ 22 сентября 2019

Вы получили его, просто присвойте результат переменной области и используйте его в шаблоне

srcImg = null; //declare this

setpreview(event) {
  const comp = this;
  const img = <File>event.target.files[0];
  const promise = new Promise((resolve) => {
    const reader = new FileReader();
    reader.onload = function () {
      resolve(reader.result);
    }
    reader.readAsDataURL(img);
  });

  promise.then(img => {
    comp.srcImg = img;
    // if you want to do anything with img you can do it here
  });
}
<input type = 'file' (change) = "setpreview($event)" value = 'upload photo'>
<img [src]="srcImg" *ngIf="srcImg" />

Обновлен Stackblitz: https://stackblitz.com/edit/angular-tkbbdh

...