Angular2 - прочитать двоичный файл из входного файла и связать его с объектом - PullRequest
0 голосов
/ 07 мая 2018

Я получил двоичное содержимое файла для нескольких входов загрузки файлов, которые связаны с массивом структурированного объекта.

Сценарий таков:

У меня есть такой класс:

export class PriceList {
    public idPriceList: number;
    public code: string;
    public name: string;
    public binary: any;//this property has to contain the binary content of the selected file
}

Тогда у меня есть мой массив, который заполнен webapi и используется для составления формы:

public listFile: PriceList[] = [];

Теперь в компоненте я реализовал цикл для создания формы, в которой пользователь может выбирать файлы для загрузки для каждого элемента PriceList:

<ng-contrainer *ngFor="let t of listFile">
<tr>
    {{t.code}}<input type="file" id="ImageBinary" (change)="fileChange($event)">
</tr>
</ng-container>

Функция ts для управления двоичным содержимым:

  fileChange(e) {

    var file = e.target.files[0];
    .......
    console.log(e);
  }

Я хочу связать двоичное содержимое файлов со свойством «двоичного» объекта.

Мне нужно передать элемент в функцию fileChange, примерно так:

fileChange($event,t)

Но если я расширю функцию, она не будет нажата ...

Я не знаю, как мне двигаться ...

Благодаря поддержке

1 Ответ

0 голосов
/ 07 мая 2018

Добавление значения к вашей функции fileChange должно быть в порядке.

Я включил ссылку на StackBlitz, которая показывает, как он работает. Вот, использует FileReader для чтения двоичного файла в ArrayBuffer:

https://stackblitz.com/edit/angular-meo6yz

<input type="file" id="ImageBinary" (change)="fileChange($event, t)">
  fileChange(event, item) {
    item.binary = event;
    var r = new FileReader();
    r.onload = function(e) { 
      item.binary = r.result
    }
    r.readAsArrayBuffer(event.target.files[0]);
  }
...