gpt4 book ai didi

c# - 从控制台应用程序接收文件时 IFormFile 始终为 null

转载 作者:行者123 更新时间:2023-11-30 20:15:51 29 4
gpt4 key购买 nike

我的 WebAPI 方法已准备好接受文件作为参数,如下所示:(例如 URI“https://localhost:44397/api/uploadfile”

 [Route("api/[controller]")]
[ApiController]
public class UploadFileController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromForm] IFormFile file)
{
}
}

我正在使用控制台应用程序将文件发送到此 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;
}
}

我还检查了其他客户端(例如 Postman),它也在那里失败了(所以这似乎是服务器端的问题,而不是控制台应用程序)。

不确定我在这里做错了什么。每当我检查我的 WebAPI 方法文件参数始终为空时。

谁能帮我找到解决办法?我尝试搜索博客无济于事。我可能在这里做了一些幼稚的事情。

最佳答案

我终于让它工作了。这一定是微软的一个错误,或者他们可能已经改变了 ApiController 从 .net core 2.1 开始的工作方式。

我将我的 WebApi 方法更改为以下内容,瞧,它起作用了。

注意:删除了 ApiController 并且它起作用了。微软应该记录这一点。

[Route("api/[controller]")]
public class OCRController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromForm] IFormFile file)
{
}
}

它可能会帮助像我一样挣扎的人。

关于c# - 从控制台应用程序接收文件时 IFormFile 始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294830/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com