Asp.net mvc ASP.NET MVC文件流结果未按预期工作

Asp.net mvc ASP.NET MVC文件流结果未按预期工作,asp.net-mvc,stream,filestreamresult,Asp.net Mvc,Stream,Filestreamresult,我有下面的代码,我把它从任何非必要的行中去掉,以保留最小的不可复制的情况。我期望它返回图像,但它没有。据我所知,它返回一个空文件: public ActionResult Thumbnail(int id) { var question = GetQuestion(db, id); var image = new Bitmap(question.ImageFullPath); MemoryStream stream = new MemoryStream(); im

我有下面的代码,我把它从任何非必要的行中去掉,以保留最小的不可复制的情况。我期望它返回图像,但它没有。据我所知,它返回一个空文件:

public ActionResult Thumbnail(int id) {
    var question = GetQuestion(db, id);
    var image = new Bitmap(question.ImageFullPath);
    MemoryStream stream = new MemoryStream();
    image.Save(stream, ImageFormat.Jpeg);
    return new FileStreamResult(stream, "image/jpeg");
}
你能确定这个代码有什么问题吗?在调试器中,我可以看到流的大小在增长,因此它似乎正在获取数据,尽管我无法验证它是正确的数据。我不知道如何调试FileStreamResult本身。

您需要插入

stream.Seek(0, SeekOrigin.Begin);
打电话给

Image.Save()

这将使流倒回到已保存图像的开头。否则,流将被定位在流的末尾,并且不会向接收器发送任何内容。

尝试倒带MemoryStream。“光标”留在文件的末尾,在您将流“倒带”到开头之前,没有任何内容可读取

 image.Save( stream, ImageFormat.Jpeg );
 stream.Seek( 0, SeekOrigin.Begin );
 return new FileStreamResult( stream, "image/jpeg" );

我在excel中尝试了这个,但没有成功。。有什么想法吗?