FileReader.readystate застрял на 1. Onload не запускается - PullRequest
1 голос
/ 23 апреля 2019

Я новичок в angular7 , и я просто пытаюсь получить данные из файла типа ввода в html-файле . Я не понимаю этого. Я получил название и другие спецификации файла, но не соответствующие данные.

Дело в том, readystate не изменяется на 2, поэтому свойство result никогда не заполняет его, и я не могу получить данные таким образом.

Насколько я понял:

TS

onChange(event) {
  if (event.target.files && event.target.files.length > 0) {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = this.saveImage(reader, event);
  }
}

private saveImage (reader: FileReader, ev: ProgressEvent): any {
  this.userInfo.Imagen = (reader.result as string).split(',')[1];
  this.converted_image = this.domSanitizer.bypassSecurityTrustResourceUrl(this.base64 + this.userInfo.Imagen);
  return null;
}

HTML

<input id="file-input" type="file" capture style="display:none" #fileInput (change)="onChange($event)"/>

Но я вообще не могу восстановить данные.

Спасибо, приятели.

1 Ответ

0 голосов
/ 25 апреля 2019

Наконец-то ... Довольно странно, и надеюсь, что этот ответ поможет вам всем или, по крайней мере, даст вам подсказку об этой ситуации.

Версия Chrome, от 73 до 75 (исправлена ​​в нем), имеет проблему, когда событие сталкивается с командой отладчика или точка останова от IDE ( команда отладчика * на самом деле ).

Решение состоит в том, чтобы просто исключить любую команду отладчика в цикле вызова и запуска события и его метода события.

...