4.17添加 IFormFile 和 IFormFileCollection 内容
创建于 2026 年 8 月 17 日约 1 分钟读完
在 ASP.NET Core 中,IFormFile 接口用于处理单个文件上传,而 IFormFileCollection 接口则管理多个文件上传。这两个接口简化了文件上传功能的实现。框架提供了 AddFile(IFormFile) 和 AddFiles(IFormFileCollection) 扩展方法,便于为多部分表单内容添加文件。示例如下:
HttpRequestBuilder.Post("https://furion.net") .SetMultipartContent(multipart => { multipart.AddFile(formFile); multipart.AddFile(formFile, "file"); // 自定义表单名称 multipart.AddFile(formFile, "file", "test.txt"); // 自定义文件名 multipart.AddFile(formFile, "file", "test.txt", "text/plain"); // 自定义媒体类型 multipart.AddFiles(formFiles); multipart.AddFiles(formFiles, "files"); // 自定义表单名称 });注意:若将 IFormFile 作为模型属性的类型,例如:
public class FormClass // 支持属性 [AliasAs] 定义别名{ public int Id { get; set; } public string Name { get; set; } public IFormFile File { get; set; }}则需确保已注册 FormFileContentProcessor。可通过全局或局部调用 .AddHttpContentProcessors(() => [new FormFileContentProcessor()]) 来完成注册:
- 单次请求设置:
HttpRequestBuilder.Post("https://furion.net/") .AddHttpContentProcessors(() => [ new FormFileContentProcessor() ])- 全局配置:
在 Startup.cs 或 Program.cs 文件中,配置并注册 HttpRemote 服务,以启用 IFormFile 内容处理器功能:
services.AddHttpRemote(builder =>{ builder.AddHttpContentProcessors(() => [ new FormFileContentProcessor() ]);});