Asp.net-Mvc

ASP.NET MVC FileStreamResult 未按預期工作

  • July 13, 2009

我有以下程式碼,我刪除了任何非必要的行,以留下最小的可重現案例。我期望它返回圖像,但事實並非如此。據我所見,它返回一個空文件:

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()

這會將流倒回到已保存圖像的開頭。否則,流將被定位在流的末尾,並且不會向接收器發送任何內容。

引用自:https://stackoverflow.com/questions/1121703