2017-03-22 1 views
1

Wie kann ich ein JPEG aus einer POST-Anfrage in eine Datei extrahieren? Der Header POST-Anforderung ist nicht MimeMultipartContent :(welche alle Beispiele im Web zu zeigen, erscheinen this.Request.Content.Headers.Contenttype.MediaType enthält die Zeichenfolge image/jpeg und Debug.Trace(this.Request.Content) gibt mir nur "System.Web.Http.WebHost.HttpControllerHandler+LazyStreamContent"Extrahieren von JPEG aus POST-Anfrage

Hier ist mein Code so weit:.

public IHttpActionResult Post() 
{ 
    HttpRequestMessage request = this.Request; 
    Trace.WriteLine(request.Content.Headers.ContentType.MediaType); // "image/jpeg" 

    // Do the extraction to a file here 

    return Ok("Worked"); 
} 
+0

den Inhalt Strom 'var IMAGE extrahieren = warten auf Anfrage. Content.ReadAsStreamAsync() 'von dort können Sie tun, was Sie mit dem Stream wollen. – Nkosi

+0

Als Referenz: Ich habe versucht, ein C# Äquivalent der Perl-CGI-Skript unter https://www.axis.com/de/support/technical-notes/upload-images-video-to-http-server – Caltor

Antwort

1

extrahieren Sie den Inhalt Strom aus der Anfrage. von dort können Sie tun, was Sie mit dem Strom wollen.

public async Task<IHttpActionResult> Post() { 
    var request = this.Request; 
    Trace.WriteLine(request.Content.Headers.ContentType.MediaType); // "image/jpeg" 

    var imageStream = await request.Content.ReadAsStreamAsync(); 

    //...save stream to disk or database...etc.  

    return Ok("Worked"); 
} 
+1

zu schreiben Hervorragend! Danke Für jeden anderen Hinweis zu speichern auf der Festplatte können Sie verwenden: mit (var FileStream = File.Create (Ziel)) { ImageStream.Seek (0, SeekOrigin.Begin); \t ImageStream.CopyTo (FileStream); } – Caltor