首页 >后端开发 >C++ >如何在 ASP.NET MVC Web API 中接受文件 POST?

如何在 ASP.NET MVC Web API 中接受文件 POST?

DDD
DDD原创
2025-01-24 01:26:09485浏览

How to Accept File POSTs in ASP.NET MVC Web API?

在 ASP.NET Web API 中处理文件上传

ASP.NET Web API 需要一种特定的方法来处理文件上传,这与传统的 ASP.NET MVC 方法不同。 HttpPostedFile 参数不直接兼容。 该解决方案涉及利用多部分内容。

多部分内容:文件上传的关键

多部分内容对于 Web API 文件上传至关重要。 它在单个 HTTP 请求中有效地组合文本和文件数据。

构建文件上传的控制器操作

使用 Task<IHttpActionResult> 的控制器操作非常适合异步文件处理。 这是一个例子:

<code class="language-csharp">[HttpPost("api/upload")]
public async Task<IHttpActionResult> Upload()
{
    if (!Request.Content.IsMimeMultipartContent())
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);

    var provider = new MultipartMemoryStreamProvider();
    await Request.Content.ReadAsMultipartAsync(provider);

    foreach (var file in provider.Contents)
    {
        var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
        var buffer = await file.ReadAsByteArrayAsync();

        // File processing logic here (e.g., save to disk, database, etc.)
    }

    return Ok();
}</code>

代码说明:

  1. IsMimeMultipartContent(): 验证请求的多部分内容类型。
  2. MultipartMemoryStreamProvider: 管理内存中的多部分数据。
  3. ReadAsMultipartAsync(): 将多部分数据解析为单独的组件。
  4. 文件迭代:代码迭代每个文件部分,提取文件名并将数据读入字节数组。
  5. 文件处理:这是您实现文件处理逻辑(保存、处理等)的地方。
  6. Ok(): 返回成功的 HTTP 响应。

结论:

这种方法提供了一种在 ASP.NET Web API 中处理文件上传的可靠方法。 使用多部分内容和 MultipartMemoryStreamProvider 可确保您的 Web API 服务中高效且稳健的文件上传处理。

以上是如何在 ASP.NET MVC Web API 中接受文件 POST?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn