【发布时间】:2020-04-18 08:07:07
【问题描述】:
我正在尝试编写一个 API 端点,允许用户使用 Asp.NET Core 3.1 将文件发送到我的服务器。
我有下面的action方法需要响应客户端的请求并处理文件验证和存储文件。
[HttpPost, Route("api/store")]
public async Task<IActionResult> Store([FromBody] MultipartFormDataContent content)
{
// Validate the file, store it.
return Ok();
}
我正在尝试像这样从客户端发送文件
using HttpClient client = new HttpClient();
var multiForm = new MultipartFormDataContent();
multiForm.Add(new StringContent("1/12/1.jpg"), "custom_file_name");
FileStream fs = System.IO.File.OpenRead("1.jpg");
multiForm.Add(new StreamContent(fs), "file", "1.jpg");
// send request to API
var url = "https://localhost:123/api/store";
var response = await client.PostAsync(url, multiForm);
但是服务器返回HTTP Code 404 Not Found。
如何正确调整上述Store 方法,使其接受客户端发送的文件?
【问题讨论】:
-
您的控制器上有
[Route("...")]属性吗? -
是的,我的控制器装饰有
[ApiController, Route("api/[controller]")]。我什至在同一个控制器上添加了一个HttpGet方法并且我能够使用它。 -
你能发布你完整的控制器类和实现吗?
标签: c# asp.net-core asp.net-core-2.0 asp.net-core-3.0 asp.net-apicontroller