IFormFileCollection имеет значение null при добавлении файла в составной POST-запрос Flurl

Я пытаюсь загрузить файл с помощью Flurl, используя AddFile.

В результате IFormFileCollection имеет значение null, хотя я могу видеть элемент при просмотре Request.Form.Files[0] с правильной длиной содержимого.

Создание запроса:

public Task<HttpResponseMessage> UploadImage(string fileName, MemoryStream stream)
{
    stream.Position = 0;

    _baseUrl
        .AppendPathSegments("uploadImage")
        .PostMultipartAsync(mp => mp
            .AddFile("files", stream, fileName))
}

Обработка запроса:

[HttpPost]
[Route("uploadImage")]
public async Task<HttpResponseMessage> UploadImages([FromForm] IFormFileCollection files)
{
    //files is null, but Request.Form.Files[0] in the immediate window shows the file.
}

Распространенной проблемой является несоответствие имени параметра и имени в заголовке Content-Disposition, но я обновил их до files, и у меня все еще есть та же проблема.


person jkh    schedule 01.11.2019    source источник
comment
Я не буду отвечать, потому что не знаю, но вот что можно попробовать: 1) удалить атрибут [FromForm], 2) поскольку в этом примере вы загружаете только 1 файл, используйте IFormFile вместо IFormFileCollection.   -  person Todd Menier    schedule 03.11.2019


Ответы (1)


Странно, что это работает на моей стороне:

MemoryStream ms = new MemoryStream();
using (FileStream file = new FileStream("txt.txt", FileMode.Open, FileAccess.Read))
    file.CopyTo(ms);

ms.Position = 0;
var _baseUrl = "https://localhost:44392/";
var result = await _baseUrl
    .AppendPathSegments("uploadImage")
    .PostMultipartAsync(mp => mp
    .AddFile("files", ms, "txt.txt"));

Результат :

введите здесь описание изображения

Пожалуйста, сначала попробуйте с чистым файлом и используйте await для передачи запроса.

person Nan Yu    schedule 04.11.2019
comment
Я не уверен, чем отличаются наши две среды, но я попытался взять ваш образец, и files по-прежнему имеет значение 0, но Request.Form.Files[0] в непосредственном окне показывает информацию о моем файле с правильным именем файла и длиной. - person jkh; 04.11.2019