在 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>
代碼說明:
IsMimeMultipartContent()
: 驗證要求的多部分內容類型。 MultipartMemoryStreamProvider
: 管理記憶體中的多部分資料。 ReadAsMultipartAsync()
: 將多部分資料解析為單獨的組件。 Ok()
: 傳回成功的 HTTP 回應。 結論:
這種方法提供了一種在 ASP.NET Web API 中處理檔案上傳的可靠方法。 使用多部分內容和 MultipartMemoryStreamProvider
可確保您的 Web API 服務中高效且穩健的文件上傳處理。
以上是如何在 ASP.NET MVC Web API 中接受檔案 POST?的詳細內容。更多資訊請關注PHP中文網其他相關文章!