У меня есть вход, с помощью которого я загружаю папку:
<div class="form-group">
<input type="file" id="file" (change)="readInput($event)" webkitdirectory directory multiple >
</div>
Папка содержит несколько различных файлов CSV.Для обработки ввода у меня есть Filereader.
readInput(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({
result: fileReader.result
});
};
fileReader.readAsText(file);
}
});
}
Теперь, Observable моего Filereader, похоже, возвращает содержимое случайного файла из папки.То, что я хотел бы сделать, это сохранить различные файлы Files в массиве, чтобы я мог получить к ним доступ позже в коде.
Я пытался добавить результат в массив в наблюдаемой:
filearray = []
readInput(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({
this.filearray.push(result);
});
};
fileReader.readAsArrayBuffer(file);
}
});
}
но это привело к тому, что массив стал пустым.
Как я могу сохранить файлы в массиве?Существуют ли более простые способы обработки ввода в папке, чем FileReader?