2

我正在尝试使用 Flurl 上传文件AddFile

结果IFormFileCollection为空,尽管我能够在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仍然遇到同样的问题。

4

1 回答 1

0

奇怪的是它对我有用:

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用于处理请求。

于 2019-11-04T05:30:27.943 回答