我用 Swagger 創建了一個 Asp.net core 3.1 web api 來將檔案上傳到服務器。以下代碼作業正常:
[HttpPost("PostFile")]
public ActionResult PostFile(IFormFile uploadedFile)
{
var saveFilePath = Path.Combine("c:\\savefilepath\\", uploadedFile.FileName);
using (var stream = new FileStream(saveFilePath, FileMode.Create))
{
uploadedFile.CopyToAsync(stream);
}
return Ok();
}
當我嘗試運行它時,我會大搖大擺地得到一個不錯的上傳按鈕。

但是,現在我想使用不同的模型。它與 IFormFile 一起具有更多屬性。
public class FileUploadRequest
{
public string UploaderName { get; set; }
public string UploaderAddress { get; set; }
public IFormFile File { get; set; }
}
當我嘗試使用此模型時,我在 Swagger 中看不到任何可以幫助我在請求中附加檔案的上傳按鈕。

出于某種原因,它將 IFormFile 顯示為字串。我怎樣才能在這里獲得上傳按鈕?
uj5u.com熱心網友回復:
在 ASP.NET Core Web API 中,application/json默認系結格式資料。但是您的模型需要的是multipart/form-data型別資料。所以你需要[FromForm]屬性來指定來源。
我在 ASP.NET Core 3.1 中使用Swashbuckle.AspNetCore版本5.6.3:
[HttpPost]
public ActionResult PostFile([FromForm]FileUploadRequest model)
{
}
結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409254.html
標籤:
