使用 Asp.net Core 的 FromForm 和 IFormFile

2023-12-01

我想上传带有模型数据的图像文件,所以我使用FromForm with IFormFile in Asp.net core api.

[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel, IFormFile formFile)
{
     // Logic here...
}

我在用Angular 7在前端。我正在将模型数据和文件添加到FormData并尝试发送它,但它总是所有模型字段值为空。

解决这个问题的正确方法是什么?


表单文件必须位于您的内部AddDataModelcsharp 类。

像这样

public class AddDataModel 
{
   public IFormFile File { get; set; }
   // more properties
}

然后在你的角度服务中,执行以下操作

public add(model: AddDataModel): Observable<any> { // file can be passed as parameter or inside typescript model
   const formData = new FormData();
   // optional you can pass a file name as third parameter
   formData.append('file', model.file)
   // add more keys to the form-data
   return this.http.post<any>('my-http-url', formData);
}

现在更新端点

[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel)
{
     // Logic here...
}

现在 ASP.NET Core 的 modelbinder 将映射从表单数据检索到的表单文件。

Edit:

添加了一个简单的示例github准备好被克隆了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Asp.net Core 的 FromForm 和 IFormFile 的相关文章

随机推荐