2016-08-03 4 views
6

웹 서비스에서 디스크에 저장된 이미지를 반환해야합니다.C# Web.API 이미지를 반환합니다. MemoryStream -> StreamContent가 브라우저 이미지를 반환합니다.

제 컨트롤러에서 일부 검색 작업을 수행하고 파일을 보냅니다. 여기 내 코드가있다. 내가이 줄을 추가하지 않으면

public HttpResponseMessage Get([FromUri]ShowImageRequest req) 
{ 
    // ....................... 
    // ....................... 

    // load image file 
    var imgStream = new MemoryStream(); 

    using (Image image = Image.FromFile(fullImagePath)) 
    { 
     image.Save(imgStream, ImageFormat.Jpeg); 
    } 

    imgStream.Seek(0, SeekOrigin.Begin); // it does not work without this 

    var res = new HttpResponseMessage(HttpStatusCode.OK); 
    res.Content = new StreamContent(imgStream); 
    res.Content.Headers.ContentType = new ediaTypeHeaderValue("image/jpeg"); 
    return res; 
} 

, 나는 0

imgStream.Seek(0, SeekOrigin.Begin); 

그렇지 않으면 작동 피들러 응답 본문의 길이를 참조하십시오. 나는 무엇을 놓치고 왜 이것을해야합니까?

답변

10

스트림 위치를 저장 한 후 끝 부분에 있습니다. 즉, 바이트를 읽지 않으면 바이트가 반환되지 않습니다.

누구나 다음과 같이 정확한 문제를 한번 실행합니다.