我正在嘗試通過 ASP.NET Core API 上傳檔案。我的行動是:
[HttpPost]
[Route("{id}")]
public async Task<IActionResult> PostImage([FromBody] IFormFile file, [FromRoute] int id)
{
if(file.Length > 0)
{
var fileName = Path.GetFileName(file.FileName);
var fileExtension = Path.GetExtension(fileName);
var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images", "Image-" id "." fileExtension);
using (var stream = new FileStream(path, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok(fileName fileExtension);
}
return NotFound("File not found!");
}
當我使用 Postman 檢查其功能時,我遇到錯誤 415 并且 Visual Studio 沒有跳轉到斷點:
{“型別”:“https://tools.ietf.org/html/rfc7231#section-6.5.13”,“標題”:“不支持的媒體型別”,“狀態”:415,“traceId”:“00- d411f8c099a9ca4db6fe04ae25c47411-dadd8cca7cc36e45-00" }
如何在我的代碼中解決此問題?
uj5u.com熱心網友回復:
如果要接收IFormFile,content-type=multiple/form-data則需要來自表單資料而不是正文的帖子。還記得改成[FromBody].[FromForm]
郵差:

控制器:
[HttpPost]
[Route("{id}")]
public async Task<IActionResult> PostImage([FromForm] IFormFile file, [FromRoute] int id)
{}
如果您從正文發布檔案,也許您發布一個位元組陣列。如果您需要更改IFormFile file為byte[] file.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/461399.html
