FileReader: получить имя файла - PullRequest
       7

FileReader: получить имя файла

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

У меня есть FileReader с Observable, который выглядит следующим образом:

readDocument(fileChangeEvent: Event) {
    return new Observable<Object>(obs => {
        const file = (fileChangeEvent.target as HTMLInputElement).files[0];
        if (file) {
            const fileReader = new FileReader();
            fileReader.onload = (e) => {
                obs.next(fileReader.result);
            }
            fileReader.readAsText(file);
        }
    });
}

Я использую содержимое файла в подписке:

this.readDocument(document).subscribe(content => {

}

В подписке, как могя получил название файла?

примерно так:

   this.readDocument(document).subscribe(content => {
        filename = content.getfilename;
    }

Возможно ли это?что может быть решением здесь?

1 Ответ

1 голос
/ 19 сентября 2019

Вы можете просто вернуть его в обновлении Observable.

readDocument(fileChangeEvent: Event) {
    return new Observable<any>(obs => {
        const file = (fileChangeEvent.target as HTMLInputElement).files[0];
        if (file) {
            const fileReader = new FileReader();
            fileReader.onload = (e) => {
                obs.next({
                   name: file.name,
                   result: fileReader.result,
                });
            }
            fileReader.readAsText(file);
        }
    });
}

. Вот как я изменил вам update_chart(), и он работает

update_chart(document) {
  this.readDocument(document).subscribe((file: any) => {
    console.log(file.name);
  });
}
...