Heim > Backend-Entwicklung > C++ > Wie extrahiere ich Dateibytes aus mehrteiligen/Formulardaten-POSTs in WCF-REST-Diensten?

Wie extrahiere ich Dateibytes aus mehrteiligen/Formulardaten-POSTs in WCF-REST-Diensten?

Susan Sarandon
Freigeben: 2025-01-05 08:15:40
Original
659 Leute haben es durchsucht

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

Extrahieren von Dateibytes aus Multipart/Form-Data-POSTs in WCF-REST-Diensten

Webformulare verwenden häufig den Inhaltstyp „Multipart/Form-Data“. um Dateien an Webdienste zu senden. Während dies eine einfache Dateiübertragung ermöglicht, kann das Extrahieren der Dateibytes aus dem mehrteiligen Textkörper eine Herausforderung sein. Eine Lösung für dieses Problem besteht darin, die in .NET 4.5 eingeführte öffentliche Microsoft-API zu nutzen.

Um diese API nutzen zu können, müssen Sie System.Net.Http.dll und System.Net.Http.Formatting einbinden. dll in Ihrem Projekt. Wenn Sie .NET 4 verwenden, können Sie diese Assemblys über NuGet abrufen.

Sobald Sie die Assemblys installiert haben, können Sie den folgenden Code verwenden, um den mehrteiligen Text zu analysieren und die Dateibytes zu extrahieren:

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:
Nach dem Login kopieren

private void MyProcessMethod(string name, Stream Inhalt)
{

// Your code to process the file data
Nach dem Login kopieren

}

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Dateibytes aus mehrteiligen/Formulardaten-POSTs in WCF-REST-Diensten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage