首頁 > 後端開發 > C++ > 如何在沒有磁碟儲存的情況下在 ASP.NET Web API 中處理檔案上傳?

如何在沒有磁碟儲存的情況下在 ASP.NET Web API 中處理檔案上傳?

Susan Sarandon
發布: 2025-01-24 01:18:09
原創
973 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板