Asp.net-Mvc
asp.net core web API文件上傳和“form-data”多個參數傳遞給方法
我創建了一個將文件作為參數的端點:
[HttpPost("[action]")] [Consumes("multipart/form-data")] public ActionResult UploadImage(IFormFile Files, string param) { long size = Files.Length; var tempPath = Path.GetTempFileName(); string file_Extension = Path.GetExtension(Files.FileName); var isValidFile = FileValidation.FileUploadValidation(Files); if (isValidFile.data) { string filename = Guid.NewGuid() + "" + file_Extension; return null; } else { return null; } }我無法毫無問題地檢索文件。如何向同一個方法添加更多文本參數?
[HttpPost("[action]")] [Consumes("multipart/form-data")] public IActionResult UploadImage([FromForm] FileInputModel Files) { return Ok(); } public class FileInputModel { public IFormFile File { get; set; } public string Param { get; set; } }我添加程式碼後需要
[FromForm]在參數模型之前添加才能[FromForm]完美執行。
它可以 100% 工作。經測試。請執行以下步驟:
您應該為模型創建一個自定義類
public class FileInputModel { public string Name { get; set; } public IFormFile FileToUpload { get; set; } }和像這樣的形式
<form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadFileViaModel" > <input name="Name" class="form-control" /> <input name="FileToUpload" type="file" class="form-control" /> <input type="submit" value="Create" class="btn btn-default" /> </form>和控制器方法如
[HttpPost] public async Task<IActionResult> UploadFileViaModel([FromForm] FileInputModel model) { if (model == null || model.FileToUpload == null || model.FileToUpload.Length == 0) return Content("file not selected"); var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", model.FileToUpload.FileName); using (var stream = new FileStream(path, FileMode.Create)) { await model.FileToUpload.CopyToAsync(stream); } return RedirectToAction("Files"); }

