0

Aurelia Fetch Client를 사용하여 Web API 끝점에 파일 업로드 요청을 보냅니다. 그러나 IFormFile은 모든 타일이 비어 있습니다. 내 코드는 아래와 같습니다.FormData 요청을 보낼 때 ASP.NET Core Web API IFormFile이 비어 있습니다.

클라이언트 측

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

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

웹 API 엔드 포인트

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

파일은 항상 null입니다. 나는이 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 });