Aurelia Загрузить файлы, DotNet Core, IFormFIleCollection null, Post Web Api

Задача: Разработать простую форму для загрузки файлов. Должны принимать разные типы файлов, такие как: jpg, pdf, doc, png.

До сих пор я безуспешно пробовал большинство предложений, которые я нашел актуальными в других сообщениях.

Если я не включаю тип содержимого в заголовок, возвращает 415.

Не могли бы вы помочь мне, заметив, что я делаю неправильно?

HTML просмотр

<template>
  <router-view>
    <input type="file"
           value.bind="files"
           id="files"
           multiple />
    <input type="submit"
           click.delegate="send()" />
  </router-view>>
</template>

Вот мой класс машинописи

import { HttpClient } from "aurelia-fetch-client";
import { autoinject } from "aurelia-framework";

@autoinject
export default class {
  constructor(
    private http: HttpClient
  ) {
  }
  private files: FileList;
  private url: string = `/api/me/correspondence/attach`;

  send(): Promise<any> {
    var formData = new FormData();
    for(let i = 0; i < this.files.length; i++){
      formData.append(
        'files',
        this.files[i],
        this.files[i].name        
        )
      }
    return this.http
      .fetch(this.url, {
        method: 'POST',
        headers: {'Content-Type':'application/json'},
        body: formData
      })
      .then(response =>{
        switch (response.status) {
          case 200: return Promise.resolve();
          default: return Promise.reject(response.statusText);
      }
      })
      .catch(error =>{
        console.log("Failure, reason=" +error.content);
      })
  }

}

API отдыха:

[Route("api/me/correspondence")]
public class MeCorrespondenceController : Controller
{
    private readonly ICorrespondenceService _correspondenceService;

    public MeCorrespondenceController(
        ICorrespondenceService correspondenceService
        )
    {
        _correspondenceService = correspondenceService;
    }

    [HttpPost("attach")]
    public Task<IActionResult> AddFiles([FromBody]IFormFileCollection files)
    {
        throw new NotImplementedException();
    }
}

0 ответов

Другие вопросы по тегам