首頁 > 後端開發 > C++ > 如何從 WCF REST 服務中的多部分/表單資料 POST 中提取檔案位元組?

如何從 WCF REST 服務中的多部分/表單資料 POST 中提取檔案位元組?

Susan Sarandon
發布: 2025-01-05 08:15:40
原創
624 人瀏覽過

How to Extract File Bytes from Multipart/Form-Data POSTs in WCF REST Services?

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

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