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:
private void MyProcessMethod(string name, Stream Inhalt)
{
// Your code to process the file data
}
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!