c# - 如何将 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;
}
解决方案
推荐阅读
- python - 对微调的 InceptionResNetV2 进行预测
- javascript - 使用 jquery 获取数据目标并放入 var
- google-cloud-datastore - 带有 ndb 的 GCP 数据存储:使用 ndb.OR 过滤
- jquery - 使用 jquery if 语句控制下拉列表项
- excel - 是否可以在用户窗体上显示打印预览?
- laravel - 如何使用 laravel 自动生成创建数据库?
- javascript - IBM Watson JavaScript SDK for Speech-To-Text WebSocket 问题
- java - 尝试运行 Spring Boot jar 文件时出错
- python - 我无法通过 loc 访问 DataFrame
- jquery - 为什么我会收到来自 AJAX 请求的间歇性 CORS 错误?