IFormFile всегда возвращает null в ядре asp.net 2.1 - PullRequest
0 голосов
/ 16 октября 2018

Метод API выглядит следующим образом

    [HttpPost]
    public async Task<BaseListResponse<MediaStorageModel>> MediaBrand(IFormFile file, int brandId)
    {
        var files = new List<IFormFile>();
        files.Add(file);

        var response = await this.Upload(files, "brand", brandId);

        return response;
    }

Моя конфигурация почтальона enter image description here

Обновление ядра dotnet с 2,0 до 2,1 не работает, можеткто-нибудь помочь об этом.Что не так

Ответы [ 8 ]

0 голосов
/ 20 августа 2019

Добавление (Name = "body") в форму от меня работало

Вызов на сервер :

[HttpPost]
  [Route("UploadImage")]

public IActionResult UploadImage([FromForm(Name = "body")]IFormFile formData)

Код клиента :

let formData = new FormData();
formData.append('body', event.target.files[0]);

const config = {
  headers: {
  'content-type': 'multipart/form-data',
  },
}

axios.post(ApiURL,formData, config);
0 голосов
/ 20 февраля 2019

Обновите атрибут [FromForm] и не помещайте параметр в заголовки, а укажите имя ключа для файла и brandId.

Я проверял, все в порядке Add [FromForm] attribute

Only form-data and key is correct

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

Убедитесь, что форма имеет правильный тип

<form asp-action="Edit" enctype="multipart/form-data">

Мне также пришлось изменить способ привязки модели с сгенерированного

public async Task<IActionResult> Edit([Bind("Text,Example")] Example example)

к

public async Task<IActionResult> Edit(Example example)
0 голосов
/ 12 февраля 2019

В вашей форме используйте

enctype = "multipart / form-data"

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

Код ниже должен работать

[HttpPost]
public async Task<BaseListResponse<MediaStorageModel>> MediaBrand([FromQuery] int brandId, IFormFile file)
{
    var files = new List<IFormFile>();
    files.Add(file);

    var response = await this.Upload(files, "brand", brandId);

    return response;
}
0 голосов
/ 21 января 2019

Я столкнулся с той же проблемой, я смог ее исправить, применив именованный параметр 'Name' к атрибуту FromForm с именем поля File в форме.Указывает, какое поле в форме связать с параметром метода.Измените подпись вашего метода, как показано здесь.

[HttpPost("status")]
public async Task<BaseListResponse<MediaStorageModel>> MediaBrand([FromForm(Name ="file")] IFormFile file, int brandId)
0 голосов
/ 27 декабря 2018

Измените аргумент вашего метода, чтобы взять модель ниже и добавить [FromForm], он должен работать.

public class FileUploadViewModel
{
    public IFormFile File { get; set; }
    public int BrandId { get; set; }
}

public async Task<BaseListResponse<MediaStorageModel>> MediaBrand([FromForm] FileUploadViewModel viewModel)
0 голосов
/ 30 ноября 2018

Я нашел обходной путь, чтобы заставить его работать:

Используйте HttpPut вместо HttPost в действии контроллера.

Я также был удивленэто поведение.Если кто-то может объяснить, почему это решает проблему, это поможет мне.

...