C# Web.API 返回图像。 MemoryStream -> StreamContent returns broken 图像
C# Web.API Returning image. MemoryStream -> StreamContent returns browken image
我需要从 Web 服务 return 存储在磁盘上的图像。
在我的控制器中,我执行一些搜索操作并发送文件。这是我的代码。
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;
}
如果我不添加这一行,我会在 fiddler 响应主体长度中看到 0
imgStream.Seek(0, SeekOrigin.Begin);
否则有效。我错过了什么,为什么我需要这样做?
保存后流位置在最后。这意味着从中读取 returns 没有字节。
每个人都遇到过这个确切的问题:)
我需要从 Web 服务 return 存储在磁盘上的图像。
在我的控制器中,我执行一些搜索操作并发送文件。这是我的代码。
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;
}
如果我不添加这一行,我会在 fiddler 响应主体长度中看到 0
imgStream.Seek(0, SeekOrigin.Begin);
否则有效。我错过了什么,为什么我需要这样做?
保存后流位置在最后。这意味着从中读取 returns 没有字节。
每个人都遇到过这个确切的问题:)