首页 >后端开发 >C++ >如何在没有磁盘存储的情况下在 ASP.NET Web API 中处理文件上传?

如何在没有磁盘存储的情况下在 ASP.NET Web API 中处理文件上传?

Susan Sarandon
Susan Sarandon原创
2025-01-24 01:18:09933浏览

How Can I Handle File Uploads in ASP.NET Web API Without Disk Storage?

使用 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中文网其他相关文章!

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