我在MainPage.cs中有以下代码
private async void UploadFile_Clicked(object sender, EventArgs e)
{
try
{
var url = "http://localhost:53416/api/upload";
var content = new MultipartFormDataContent();
content.Add(new StreamContent(_mediaFile.GetStream()),
"\"file\"",
$"\"{_mediaFile.Path}\"");
var httpClient = new HttpClient();
var httpResponseMessage = await httpClient.PostAsync(url, content);
}
catch (Exception ex)
{
}
}
在我的Asp.net核心控制器UploadController.cs中
[Route("api/Upload")]
[HttpPost]
public async Task<IActionResult> Post([FromForm(Name = "file")] IFormFile file)
{
try
{
var uploads = Path.Combine(webHostEnvironment.WebRootPath, "Uploads");
if (file.Length > 0)
{
using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
return Ok();
}
catch (Exception ex)
{
return StatusCode(500, $"Internal server error: {ex}");
}
}
在从UWP应用程序执行调用时,我收到了400 Bad request,该方法没有命中,而在使用postman在表单数据中包含图像的情况下,命中相同的url时工作正常。
目标框架是.net核心3.1
另一件事是从Post方法中删除参数"FromForm(Name = " file“) IFormFile file”,这样它将类似于
public async Task<IActionResult> Post()
该方法正在被调用。
有没有人知道我做错了什么!
发布于 2020-10-04 07:24:25
检查映像的大小,Asp.Net核心有默认的30MB请求大小限制如果需要,可以增加限制:https://khalidabuhakmeh.com/increase-file-upload-limit-for-aspdotnet
https://stackoverflow.com/questions/64183731
复制相似问题