在 ASP.NET MVC Web API 中处理文件上传
此示例演示如何在 ASP.NET MVC Web API 中使用 multipart/form-data 处理文件上传。
下面的 Upload
方法使用 Request.Content.IsMimeMultipartContent()
检查请求是否是多部分表单。如果不是,它会抛出一个 HttpResponseException
指示不支持的媒体类型。 否则,它使用 MultipartMemoryStreamProvider
异步读取多部分数据。 然后,代码循环访问每个文件,将文件名和内容提取为字节数组。您可以调整文件处理逻辑以满足您的特定需求。
<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); // Process uploaded files foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('"'); var buffer = await file.ReadAsByteArrayAsync(); // Save the file, process the data, or perform other actions here. // Example: Save to disk // var filePath = Path.Combine(Server.MapPath("~/App_Data"), filename); // File.WriteAllBytes(filePath, buffer); } return Ok(); }</code>
这个改进的代码提供了更清晰的注释和更简洁的过程解释。 请记住将注释掉的示例文件保存替换为您想要的文件处理逻辑。
以上是如何在 ASP.NET MVC Web API 中接受文件 POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!