Jos*_*a I 2 .net c# asp.net-web-api2 .net-core asp.net-core-webapi-2.1
我已经准备好WebApi方法来接受文件,如下所示:(例如uri“ https:// localhost:44397 / api / uploadfile ”
[Route("api/[controller]")]
[ApiController]
public class UploadFileController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromForm] IFormFile file)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用控制台应用程序将文件发送到此api方法,以下是我的代码:
public static void Send(string fileName)
{
using (var client = new HttpClient())
using (var content = new MultipartFormDataContent())
{
client.BaseAddress = new Uri("https://localhost:44397");
var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
var index = fileName.LastIndexOf(@"\");
var fn = fileName.Substring(index + 1);
fs.Position = 0;
var contentfile = new StreamContent(fs);
content.Add(contentfile, "file", fn);
var result = client.PostAsync("/api/uploadfile", content).Result;
}
}
Run Code Online (Sandbox Code Playgroud)
我还与其他客户端(例如,邮递员)进行了检查,并且它也在那里失败了(因此,这似乎是服务器端而不是控制台应用程序中的问题)。
不知道我在这里做错了什么。每当我检查WebApi方法文件参数始终为null时。
谁能帮我找到解决方案。我尝试搜索博客,但无济于事。我可能在这里做些天真。任何帮助,不胜感激。
最后,我使它工作。它必须是Microsoft中的错误,否则它们可能会从ApiController的.net core 2.1更改工作方式。
我将我的WebApi方法更改为以下方法,并确保它有效。
注意:删除了ApiController并正常工作。Microsoft应该对此进行记录。
[Route("api/[controller]")]
public class OCRController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromForm] IFormFile file)
{
}
}
Run Code Online (Sandbox Code Playgroud)
它可以帮助像我这样挣扎的人。
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |