【发布时间】:2020-10-17 04:07:29
【问题描述】:
我正在开发一个 Angular 和 .NET Core 应用程序。我必须将从角度上传的文件传递给 WEB API。我的代码是:
public async Task ImportDataScienceAnalytics(string authToken, IFormFile file)
{
var baseUrl = Import.GetBaseURL();
var client = new RestClientExtended(baseUrl + "algorithm/import");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", authToken);
string jsonBody = JsonConvert.SerializeObject(file);
request.AddJsonBody(jsonBody);
var response = await client.ExecutePostTaskAsync(request);
var result = response.Content;
}
问题是我得到“未找到附件”。我认为问题是因为 IFormFile。我该如何解决这个问题,以便我可以将文件上传到 web api。
【问题讨论】:
-
你为什么使用
async void?我建议改用Task。 -
检查文件是否已填充...。您还需要从流中读取 IFormFile 和与文件流交互的接口。进一步/还有你为什么
JsonConvert.SerializeObject(file);,就像你试图上传传递。 -
我必须将此文件传递给 API @Seabizkit。 . .如何从 IFormFile 读取流并将其传递给 API,任何示例代码?
-
首先下断点,检查IFormFile文件是否有内容。其次,您需要创建流。
if (file.Length > 0) { var filePath = Path.GetTempFileName(); using (var stream = System.IO.File.Create(filePath)) { await file.CopyToAsync(stream); } } -
@WaleedNaveed bayram 已经给了你上面的答案 ;-)
标签: c# asp.net-core asp.net-web-api