C# 使用FormData将参数为Angular 10的文件上载到.Net Core Web API
我正在寻找一种方法来附加参数的形式连同一个文件使用FormData 所以我有一个文件输入和一个有很多参数的表单 以下是我发送文件的方式:C# 使用FormData将参数为Angular 10的文件上载到.Net Core Web API,c#,angular,form-data,C#,Angular,Form Data,我正在寻找一种方法来附加参数的形式连同一个文件使用FormData 所以我有一个文件输入和一个有很多参数的表单 以下是我发送文件的方式: let formData=new FormData(); formData.append("file",<File>this.file); 我尝试像这样添加表单值: formData.append("params",this.fileForm.value); 但我在c代码中找不到: 只带来文件对象
let formData=new FormData();
formData.append("file",<File>this.file);
我尝试像这样添加表单值:
formData.append("params",this.fileForm.value);
但我在c代码中找不到:
只带来文件对象
还有别的办法吗
更新:
这是我在angular中的上传功能:
save(){
let formData=new FormData();
formData.append("file",<File>this.file);
formData.append("parameters",this.fileForm.value);
this.fileService.uploadFile(formData).subscribe((res)=>{
console.log(res);
})
文件上载到类:
public class FileUploadDTO
{
public FileCategory fileCategory { get; set; }
public FileEssence fileEssence { get; set; }
public FileType fileType { get; set; }
public string headline { get; set; }
}
参数var为空,不是null,但所有值都为null。到
formData
可以附加blob或string。
所以您可以将值附加到formData并将其发送到后端。在后端,您可以通过FromForm
属性获取post参数
以下是我的例子:
const formData = new FormData();
formData.append('file', this.file);
formData.append('fileType', this.fileForm.get('fileType').value);
formData.append('fileCategory', this.fileForm.get('fileCategory').value);
在后端获取formData
:
public void FormHandler([FromForm] string fileType, [FromForm] string fileCategory, [FromForm] IFormFile file){
// do the stuff
}
文件具有什么类型的参数?检查这个Answers@tmsbrndz-这是一个充满参数、整数和字符串的表单,用于填充用户.Net核心WebAPI@tmsbrndz-我尝试了public void FormHandler([FromForm]FileUploadDTO参数,[FromForm]ifformfile文件){//do the stuff},参数返回emptyPlease显示角度的完整代码service@tmsbrndz-我更新了我的问题,请检查一下,谢谢来自
文件
的地方?问题不在于带参数的文件。
public IActionResult UploadFile([FromForm] FileUploadDTO parameters, [FromForm] IFormFile file)
{
}
public class FileUploadDTO
{
public FileCategory fileCategory { get; set; }
public FileEssence fileEssence { get; set; }
public FileType fileType { get; set; }
public string headline { get; set; }
}
const formData = new FormData();
formData.append('file', this.file);
formData.append('fileType', this.fileForm.get('fileType').value);
formData.append('fileCategory', this.fileForm.get('fileCategory').value);
public void FormHandler([FromForm] string fileType, [FromForm] string fileCategory, [FromForm] IFormFile file){
// do the stuff
}