Отправка .net core фотографий и json с угловыми 7 - PullRequest
0 голосов
/ 06 апреля 2019

Я работаю с ядром Angular и .net, и когда я отправляю фотографии на сервер, я вижу фотографию пустой.

Я хочу отправлять данные в формате json и файл одновременно, мне нужно добавить сумку

форма в html файле

<form>
     <div class="form-group">
      <input
        class="form-control mr-sm-2"
        name="tournamentName"
        [(ngModel)]="addItems.achievement_tournament"
        required
        type="text"
        placeholder="Tournament Name"
      />
    </div>
    <div class="form-group">
      <input type="file" [(ngModel)]="addItems.File" />
    </div>
    <button
      class="btn btn-secondary my-2 my-sm-0"
      [disabled]="!editForm.valid"
      type="submit"
    >
      Save
    </button>
</form>

Угловые 7 моделей

   export class AchievementsAddEdit {
          achievement_tournament:string;
          File: File = null;
        }

Угловые 7 компонентов, ц

 add(){
   this.achievementsService.add(this.addItems,this.selectedFile);
 }

достиженияService ts

add(item:AchievementsAddEdit,file){
    console.log(file);
    let formData: FormData = new FormData(); 
    formData.append('File',file );
        formData.append('achievement_tournament', item.achievement_tournament);
    const options = {
      headers: new HttpHeaders().set('enctype', 'multipart/form-data'),
     };
    this.httpClient.post(this.path + 'achievements/add',formData,options).subscribe(data=>{
        //console.log(data);
    });   }

.net модель ядра

  public class AchievementsAddEdit
{

    public System.DateTime achievement_date { get; set; }
    public string achievement_place { get; set; }

    public string achievement_tournament { get; set; }
    public string achievement_prize { get; set; }
    public int achievement_status { get; set; } = 1;

    public IFormFile File { get; set; }
}

.net Core Controller

[HttpPost]
    [Route("add")]
    public async Task<IActionResult> Add([FromForm]AchievementsAddEdit model)
    {
        if (_appRepository.IsThereDataForAchievements(model.achievement_tournament))
        {
            return BadRequest("There Is");
        }

        _appRepository.Add(model);
        _appRepository.SaveAll();
        return Ok(model);

    }

результат запроса

1 Ответ

0 голосов
/ 06 апреля 2019

Вам нужно изменить заголовок с

const options = {
      headers: new HttpHeaders().set('enctype', 'multipart/form-data'),
     };

на

const options = {
  headers: new HttpHeaders({ "Accept": "application/json" })
}
...