0

我正在使用Aurelia提取客戶端向Web API端點發送文件上載請求。但是IFormFile在所有的tile中都是空的。我的代碼如下。ASP.NET Core Web API IFormFile空,發送FormData請求時

客戶端

const formData = new FormData(); 
formData.append("files", account.statement); 

const response = await this.http.fetch(url, { method: "POST", body: formData 
}); 

的Web API終點

[HttpPost] 
public IActionResult Save () 
{ 
    var files = Request.Form.Files; 
} 

文件總是空。我跟着這個post,並已完成提到。但仍然無法弄清楚什麼是錯的。

回答

0

我想出了一種使用DTO並將上傳的文件指定爲FormData中的File對象的方法。這是因爲我有其他字段值,我需要使用File對象發送。

服務器

創建具有所需屬性的DTO對象。

public class SaveAccountRequest 
{ 
public string AccountName { get; set; } 
public IFormFile Statement { get; set; } 
} 

添加DTO作爲控制器端點的接受參數。

[HttpPost] 
public IActionResult SaveAccount(SaveAccountRequest saveAccountRequest) 
{ 
//you should be able to access the Statement property as an IFormFile in the saveAccountRequest. 
} 

客戶

追加所有屬性的FORMDATA對象,並確保您根據服務器端DTO使用的名稱命名。

const formData = new FormData(); 
formData.append("accountName", accountName); 
formData.append("statement", saveBankAccountRequest.primaryCurrencyId); 

將數據發佈到SaveAccount端點。我使用抓取API來發布數據,但一個簡單的帖子也應該可以工作。

this.http.fetch(<api endpoint url>, { method: "POST", body: formData }); 
相關問題