我有以下代码,我从任何非必要的线条剥离离开minimun可再现的情况。我所期望的是它返回的图像,但它不是。据我所见,它返回一个空文件:
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()
这将使流回绕到保存的图像的开头。否则,流将被定位在流的结尾,并且什么也不被发送到接收器。