2017-03-22 3 views
1

어떻게 POST 요청에서 파일로 jpeg를 추출 할 수 있습니까? POST 요청 헤더를 보여주기 위해 표시되는 웹의 모든 예 MimeMultipartContent :(아닙니다 this.Request.Content.Headers.Contenttype.MediaTypeimage/jpegDebug.Trace(this.Request.Content) 그냥 여기 나에게 "System.Web.Http.WebHost.HttpControllerHandler+LazyStreamContent"POST 요청에서 jpeg 추출

을 제공합니다 지금까지 내 코드 문자열이 포함되어 있습니다.

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

콘텐츠 스트림을 추출합니다. 'var imageStream = await request. Content.ReadAsStreamAsync()'에서 스트림으로 원하는 것을 할 수 있습니다. – Nkosi

+0

참조 : https://www.axis.com/gb/en/support/technical-notes/upload-images-video-to-http-server에서 perl cgi 스크립트와 동일한 C#을 작성하려고 시도했습니다. – Caltor

답변

1

요청에서 콘텐츠 스트림을 추출하면 스트림에서 원하는 것을 할 수 있습니다.

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

훌륭한! 감사합니다 다른 사람이 디스크에 저장하려면 다음을 사용할 수 있습니다. using (var FileStream = File.Create (destination)) { ImageStream.Seek (0, SeekOrigin.Begin); \t ImageStream.CopyTo (FileStream); } – Caltor