如何读取文件与我的WebApi自定义MediaTypeFormatter

本文关键字:我的 WebApi 自定义 MediaTypeFormatter 文件 何读取 读取 | 更新日期: 2023-09-27 18:13:13

我正在创建一个ASP。. NET MVC WEBAPI应用程序,我实际上实现了一个自定义MediaTypeFormatter来处理某些类型的内容。(以csv为例)

我的目标是阅读从我的网页浏览器的形式张贴的文件。但是我的mediatypeformatter的read方法从未到达。

是否有人有MediaTypeFormatters的工作示例,其中发布的文件被读取?

或者有人能指出方向吗?

形式:

我得到这个错误:没有MediaTypeFormatter可用于读取类型为'IEnumerable ' 1'的内容与媒体类型'multipart/form-data'的对象。

如何读取文件与我的WebApi自定义MediaTypeFormatter

Multi-part有多个部件。所以,你需要阅读它们,像这样:

public async Task Post()
{
    var multipart = await Request.Content.ReadAsMultipartAsync();
    foreach (var content in multipart.Contents)
    {
        var products = await content.ReadAsAsync<IEnumerable<Product>>();
    }
}

ReadAsAsync<T>可以根据您拥有的媒体格式化程序读取请求——既可以是现成的,也可以是自定义的。因此,在您的情况下,如果您配置了CSV格式器,根据文件的MIME类型,它应该正确读取请求内容。