從WCF REST 服務中的Multipart/Form-Data POST 中提取檔案位元組
Web 表單通常使用multipart/form-data內容類型將文件發佈到Web 服務。雖然這可以輕鬆進行文件傳輸,但從多部分主體中提取文件位元組可能是一個挑戰。此問題的解決方案之一是利用 .NET 4.5 中引入的公共 Microsoft API。
要利用此 API,您需要包含 System.Net.Http.dll 和 System.Net.Http.Formatting。 dll 在你的專案中。如果您使用的是 .NET 4,則可以透過 NuGet 取得這些組件。
準備好程式集後,您可以使用以下程式碼來解析多部分主體並擷取檔案位元組:
public static async Task ParseFiles( Stream data, string contentType, Action<string, Stream> fileProcessor) { // Create a stream content based on the input stream var streamContent = new StreamContent(data); // Set the content type header streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType); // Read the multipart data as multipart content var provider = await streamContent.ReadAsMultipartAsync(); // Loop through each content retrieved from the multipart body foreach (var httpContent in provider.Contents) { // Get the file name var fileName = httpContent.Headers.ContentDisposition.FileName; // If there is a file name, ignore empty file names if (string.IsNullOrWhiteSpace(fileName)) { continue; } // Read the file content stream using (Stream fileContents = await httpContent.ReadAsStreamAsync()) { // Pass the file name and file content stream to the specified processor fileProcessor(fileName, fileContents); } } } ```` To use this code, you can create a custom file processor method, such as:
private void MyProcessMethod(字串名稱, Stream內容)
{
// Your code to process the file data
}
以上是如何從 WCF REST 服務中的多部分/表單資料 POST 中提取檔案位元組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!