Использование двумерного массива для получения информации о файле - PullRequest
0 голосов
/ 18 апреля 2019

Можно ли использовать двумерные массивы для захвата имени файла и его содержимого base64 (при условии, что он был преобразован заранее)?Как можно это сделать?

Я бы предположил, что это будет включать использование двух моделей ngModel:

In app.component.html

[(ngModel)]="userModel.fileDocs[0][0]" [(ngModel)]="userModel.fileDocs[0][1]"

Первая и вторая привязки соответственно захватывают имена и содержимое.

  • Имя первого файла с номером [0] [0] и содержимое файла [0] [1].
  • Имя второго файла в [1] [0] и его содержимое в [1] [1].
  • Имя третьего файла в [2] [0] и его содержимое в [2] [1].
  • Имя четвертого файла в [3] [0] и его содержимое в [3] [1].

В app.component.ts

[['', ''], ['', ''], ['', ''], ['','']]

Массивы с первого по четвертый в массиве будут первым индексом в массиве [0-3] [].Доступ к строкам в массиве осуществляется через второй индекс двумерного массива, [] [0-1].

Я пытался сделать итерацию, которая добавляет имя файла и содержимое в массивСтроки, однако, результат, что только массив в массиве 2-D был итерирован.

In app.component.ts


   for (let i = 0; i < modifiedUserModel.fileDocs.length; i++) {
    // Update file values from userModel to include the base64 string content and the file name
      modifiedUserModel.fileDocs[i][0] =  '{"fileName": "' +  this.elem.files[i].name + '"';
      modifiedUserModel.fileDocs[i][1] =  '"fileData": "' + this.base64result + '"}';
    }

Ожидаемый результат былимена файлов будут совпадать с первой строкой в ​​каждом из массивов в двумерном массиве, и что base64 будет введен во вторую строку массивов в содержимом двумерного массива.

 "fileDocs": [
    [
      "{\"fileName\": \"output1.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output2.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output3.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output4.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ]
  ]

Фактический результат, что это произошло только для первого массива в двумерном массиве.Другие отображали только путь к файлу как в области имени, так и в области содержимого.Кроме того, последний отправленный файл оказался тем, который проходит как первый файл.Я предполагаю, что это связано с итерацией.

 "fileDocs": [
    [
      "{\"fileName\": \"output4.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "C:\\fakepath\\output2.docx",
      "C:\\fakepath\\output2.docx"
    ],
    [
      "C:\\fakepath\\output3.docx",
      "C:\\fakepath\\output3.docx"
    ],
    [
      "C:\\fakepath\\output4.docx",
      "C:\\fakepath\\output4.docx"
    ]
  ]
...