首页 > 解决方案 > 如何将 IFromFile 以及其他属性作为集合发布到 .Net core 2.2 Webapi

问题描述

我想在我有 IFormFile 和其他属性作为集合的地方执行批量文件上传。

我已经使用提到的测试用例成功上传了一个对象,但是当我将它作为数组发送时,它无法处理请求。

下面是我的控制器

public async Task<IActionResult> BulkUploadFilesByPath([FromForm] List<BulkUploadRequest> bulkFiles)

下面是请求对象

public class BulkUploadRequest
    {
        public string ClientId { get; set; }
        public IFormFile File { get; set; }
        public Dictionary<string, string> Tags { get; set; }
    }

下面是我试图向控制器发出请求的测试用例

[Fact]
        public async Task BulkUploadFileSuccess()
        {
            var content = new MultipartFormDataContent();

            var values = new[]
            {
                new KeyValuePair<string, string>("ClientId", "Bar")
            };
            foreach (var keyValuePair in values)
            {
                content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key);
            }

            var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(_testFileDir + "Test Document 1.pdf"));
            fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
            {
                FileName = "Test Document 1.pdf",
                Name = "File"
            };
            fileContent.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");

            content.Add(fileContent, "File", "Test Document 1.pdf");
            var requestUri = "/api/directories/bulkupload";

            var result = _client.PostAsync(requestUri, content).Result;

        }

标签: c#asp.net-web-api.net-coremultipartform-datadotnet-httpclient

解决方案


推荐阅读