使用 HttpClient 在 ASP.NET Web API 中处理文件上传
在使用 ASP.NET Web API 开发 RESTful 服务时,处理文件上传是一个常见需求。本文探讨了如何使用 Web API 框架接收客户端应用程序 POST 的图像或文件。
最初的代码使用 HttpPostedFile
参数,这种方法需要服务器上的物理位置来保存上传的文件。但是,本文介绍了一种替代方案,它将所有内容保留在内存中,无需写入文件系统。
更新后的代码使用 MultipartMemoryStreamProvider
读取 POST 请求的多部分表单数据。它迭代文件内容,访问文件名及其二进制数据。这种方法允许处理上传的文件,而无需文件系统存储。
以下是修改后的代码:
<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(); // 使用文件名和其二进制数据执行任何操作。 } return Ok(); }</code>
此解决方案提供了一种更灵活、更高效的方法来处理 Web API 服务中的文件上传,避免了对文件系统存储的需求,并实现了对上传内容的无缝处理。
以上是如何在没有磁盘存储的情况下在 ASP.NET Web API 中处理文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!