是否可以使用二维数组来捕获文件的名称及其base64内容(假设文件已预先转换)?怎么会这样呢?
我认为这将包括使用两个ngModels:
在 app.component.html
中[(ngModel)]="userModel.fileDocs[0][0]" [(ngModel)]="userModel.fileDocs[0][1]"
第一个绑定和第二个绑定分别捕获名称和内容。
在 app.component.ts
中[['', ''], ['', ''], ['', ''], ['','']]
数组中的第一个数组到第四个数组将是[0-3] []数组中的第一个索引。可以通过二维数组的第二个索引[] [0-1]访问数组中的字符串。
我试图进行一次迭代,将文件名和内容添加到数组字符串中,但是结果是仅对二维数组中的数组进行了迭代。
在 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 + '"}';
}
预期结果是文件名将与2-D数组中每个数组中的第一个字符串对齐,并且将base64输入到2-D数组内容中的第二个字符串中
"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"
]
]