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