Angular + Core如何将文件数组从Angular上传到Dot Net Core

问题描述

这里正在获取文件数组以进行上传。但我无法绑定我的数据

fileList: File[] = [];
listofFiles: any[] = [];
 onFileChanged(event: any) {
    for (var i = 0; i <= event.target.files.length - 1; i++) {
      var selectedFile = event.target.files[i];
      this.fileList.push(selectedFile);
      this.listofFiles.push(selectedFile.name)
  }
}

在此处将文件上传到服务器

upload() {
  const formData: any = new FormData();
formData.append('ofile',this.fileList)
  console.log('form data variable :   '+ formData.toString());
this._service.PostFormData(formData).subscribe(data=>{  
});
}

HTML代码

<input type="file" (change)="onFileChanged($event)">
<input type="file" (change)="onFileChanged($event)">
<input type="file" (change)="onFileChanged($event)">

<!-- <button mat-icon-button (click)="removeSelectedFile(index)">delete</button> -->
<button (click)="upload()">Save</button>

我正在使用的核心方面

    public class Test
    {
      //  public List<IFormFile> ofile { get; set; }
        public byte[] ofile { get; set; }
  }

COntroller

[HttpPost]
    public IActionResult GetName([FromForm]Test oTest)
    {
      }

在这里获得零值,请帮助我如何解决此问题

解决方法

您应该foreach fileList并将文件一个接一个地添加到formData中。

upload() {
const formData: any = new FormData();
$.each(this.fileList,function (i,file) {
    formData.append('ofile',file);
});
this._service.PostFormData(formData).subscribe(data=>{  
});
}

型号:

public class Test
{
    public List<IFormFile> ofile { get; set; }
}