首頁 > 後端開發 > C++ > 如何在 ASP.NET MVC Web API 中接受檔案 POST?

如何在 ASP.NET MVC Web API 中接受檔案 POST?

DDD
發布: 2025-01-24 01:26:09
原創
482 人瀏覽過

How to Accept File POSTs in ASP.NET MVC Web API?

在 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>
登入後複製

代碼說明:

  1. IsMimeMultipartContent(): 驗證要求的多部分內容類型。
  2. MultipartMemoryStreamProvider: 管理記憶體中的多部分資料。
  3. ReadAsMultipartAsync(): 將多部分資料解析為單獨的組件。
  4. 檔案迭代:程式碼迭代每個檔案部分,提取檔案名稱並將資料讀入位元組數組。
  5. 檔案處理:這是您實作檔案處理邏輯(儲存、處理等)的地方。
  6. Ok(): 傳回成功的 HTTP 回應。

結論:

這種方法提供了一種在 ASP.NET Web API 中處理檔案上傳的可靠方法。 使用多部分內容和 MultipartMemoryStreamProvider 可確保您的 Web API 服務中高效且穩健的文件上傳處理。

以上是如何在 ASP.NET MVC Web API 中接受檔案 POST?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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