FromForm с IFormFile с использованием ядра Asp.net - PullRequest
0 голосов
/ 29 января 2019

Я хочу загрузить файл изображения с данными модели, поэтому я использую FromForm с IFormFile в Asp.net core API.

[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel, IFormFile formFile)
{
     // Logic here...
}

Я использую Angular 7 на стороне внешнего интерфейса.Я добавляю данные и файл модели в FormData и пытаюсь отправить их, но всегда все значения полей модели имеют значение null.

Как правильно решить эту проблему?

1 Ответ

0 голосов
/ 29 января 2019

Форм-файл должен находиться внутри вашего AddDataModel класса csharp.

Примерно так:

public class AddDataModel 
{
   public IFormFile File { get; set; }
   // more properties
}

Затем в вашем сервисе angular выполните следующие действия:

public add(model: AddDataModel): Observable<any> { // file can be passed as parameter or inside typescript model
   const formData = new FormData();
   // optional you can pass a file name as third parameter
   formData.append('file', model.file)
   // add more keys to the form-data
   return this.http.post<any>('my-http-url', formData);
}

Теперь обновите конечную точку

[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel)
{
     // Logic here...
}

Теперь связыватель модели ASP.NET Core отобразит файл формы, полученный из данных формы.

Редактировать:

Добавлен простой пример на github , готовый для клонирования.

...