基於.net core2.2的webapi程式,接收客戶端上傳的文件.按照以下寫法,file的值永遠是null 一.有兩種方法解決這個問題: 1.屬性綁定.在[FromForm]里添加Name屬性如:[FromForm(name = "file")],客戶端調用時需要保持一致 還可以和其他參數一起傳 ...
基於.net core2.2的webapi程式,接收客戶端上傳的文件.按照以下寫法,file的值永遠是null
[HttpPost] public void Post([FromForm] IFormFile file) { }
一.有兩種方法解決這個問題:
1.屬性綁定.在[FromForm]里添加Name屬性如:[FromForm(name = "file")],客戶端調用時需要保持一致
// POST api/values
[HttpPost] public void Post([FromForm(Name = "file")] IFormFile file) { }
還可以和其他參數一起傳過來
// POST api/<controller> [HttpPost] public async Task<IActionResult> UploadFile(string fileName,[FromForm(Name ="file")]IFormFile formFile)
PostMan測試,註意參數名要保持一致,否則收到的值為null
2.通過Request.Form.Files獲取文件,客戶端可以任意指定name
// POST api/values
[HttpPost] public void Post() { IFormFile formFile= Request.Form.Files[0]; var filePath = @"D:\UploadingFiles\" + formFile.FileName; if (formFile.Length > 0) { using (var stream = new FileStream(filePath, FileMode.Create)) { formFile.CopyTo(stream); } } }
二.客戶端調用代碼
var request = new RestRequest(Method.POST); request.AddFile("file", @"d:\1.jpg"); var restClient = new RestClient("http://localhost:63270/api/values"); IRestResponse response = restClient.Execute(request);