C#Web.API返回图像.MemoryStream - > StreamContent返回browken图像

Vit*_*lii 6 c# memorystream

我需要从Web服务返回存储在磁盘上的映像.

在我的控制器中,我执行一些搜索操作并发送文件.这是我的代码.

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;
}
Run Code Online (Sandbox Code Playgroud)

如果我不添加这一行,我会在fiddler响应体长0中看到

imgStream.Seek(0, SeekOrigin.Begin); 
Run Code Online (Sandbox Code Playgroud)

否则它有效.我错过了什么,为什么我需要这样做?

usr*_*usr 13

保存后,流位置结束.这意味着从中读取不返回任何字节.

每个人都遇到这个问题一次:)