问题描述
我在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错误的请求,并且该方法未触发, 而在使用邮递员在表格数据中包含图像的邮递员打相同的网址时,效果很好。
目标框架是.net核心3.1
还有一件事情是,从Post方法中删除参数“ [FromForm(Name =“ file”)] IFormFile file“),使其看起来像
public async Task<IActionResult> Post()
我做错什么了吗 任何人都知道!
解决方法
检查图像的大小,Asp.Net核心具有默认的30MB请求大小限制,您可以根据需要增加该限制:https://khalidabuhakmeh.com/increase-file-upload-limit-for-aspdotnet