在 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>
代码说明:
IsMimeMultipartContent()
: 验证请求的多部分内容类型。MultipartMemoryStreamProvider
: 管理内存中的多部分数据。ReadAsMultipartAsync()
: 将多部分数据解析为单独的组件。Ok()
: 返回成功的 HTTP 响应。结论:
这种方法提供了一种在 ASP.NET Web API 中处理文件上传的可靠方法。 使用多部分内容和 MultipartMemoryStreamProvider
可确保您的 Web API 服务中高效且稳健的文件上传处理。
以上是如何在 ASP.NET MVC Web API 中接受文件 POST?的详细内容。更多信息请关注PHP中文网其他相关文章!