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

Posted

技术标签:

【中文标题】Angular + core 如何将文件数组从 Angular 上传到 Dot Net Core【英文标题】:Angular + core How to upload Array of file from Angular to Dot Net Core 【发布时间】:2021-01-06 02:39:04 【问题描述】:

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

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; 
  

控制器

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

这里我得到空值请帮助我如何克服这个问题

【问题讨论】:

【参考方案1】:

你应该foreach文件列表并将文件一个一个添加到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; 

【讨论】:

以上是关于Angular + core 如何将文件数组从 Angular 上传到 Dot Net Core的主要内容,如果未能解决你的问题,请参考以下文章

如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件

如何将数据表从 .net core 5.0 web api 作为 json 传递到 Angular 前端?

将 ASP.Net Core Angular 模板从版本 8 更新到 9

将数组从一个组件传递到另一个组件的角度

将文件从 ASP.NET Core Web api 发布到另一个 ASP.NET Core Web api

如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?