Неверный запрос (400) при публикации IFormFile - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть проект .NET Core API, у которого есть простая конечная точка для загрузки файла:

[Route("api/[controller]")]
[ApiController]
public class FilesController : Controller
{
    private IFilesService _filesService { get; set; }

    public FilesController(IFilesService filesService)
    {
        _filesService = filesService;
    }

    [HttpPost]
    public async Task<IActionResult> UploadFile(IFormFile file)
    {
        var model = await _filesService.UploadFile(file);
        return Ok();
    }
}

Я пытался проверить это с помощью Postman, но каждый раз, когда я отправляю файл в конечную точку, Я получаю ошибку 400 Bad Request.Моя конечная точка никогда не получает удар.

У меня есть несколько других конечных точек POST, которые прекрасно работают, так что это проблема либо с этой конкретной конечной точкой, либо с Postman.Вот моя установка в Почтальоне:

enter image description here

Я крутил свои колеса, пытаясь выяснить, в чем проблема, но тут не так многои я следую примерам, которые я видел в Интернете.

Что я делаю неправильно?

Ответы [ 3 ]

0 голосов
/ 01 декабря 2018

попробуйте это.

[HttpPost]
    public async Task<IActionResult> UploadFile([FromForm]IFormFile file)
    {
        var model = await _filesService.UploadFile(file);
        return Ok();
    }

И удалите атрибут ApiController

0 голосов
/ 01 декабря 2018

Я вижу, что вы установили атрибут [ApiController], поэтому я предполагаю, что вы используете ASP.Net Core 2.1.

Если он еще не установлен, попробуйте изменить services.AddMvc() на services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); вStartup.cs.

Некоторое время назад у меня была похожая проблема, и вышеуказанное изменение исправило ее для меня.Я нашел ответ на мою проблему здесь .

Надеюсь, это поможет!

0 голосов
/ 01 декабря 2018

попробуйте ниже URL в клиенте Почтальона

...