Каков реальный способ для mvc обслуживать файловый поток? - PullRequest
0 голосов
/ 16 декабря 2011

У меня неправильный способ заставить asp.net mvc обслуживать файловый поток.Это выглядит так:

    public void SlideThumbnail(Guid id, int? width, int? height)
    {
        /*make the thumbnail code here*/

        using (Bitmap thumbnail = imageThumb.Generate(path))
        {
            var msOutput = new MemoryStream();

            thumbnail.Save(msOutput, ImageFormat.Png);
            Response.ContentType = "image/png";
            msOutput.WriteTo(Response.OutputStream);
        }
    }

Это работает супер пупер.Я попытался изменить код для использования base.File() вместо этого.Вот так:

    public ActionResult SlideThumbnail(Guid id, int? width, int? height)
    {
        /*make the thumbnail code here*/

        using (Bitmap thumbnail = imageThumb.Generate(path))
        {
            var msOutput = new MemoryStream();

            thumbnail.Save(msOutput, ImageFormat.Png);
            return base.File(msOutput, "image/png");
        }
    }

Но все это, похоже, на самом деле ничего не делает.Я не получаю никаких ошибок, но я также не получаю никакого изображения: - (

Так, как мне сделать это способом MVC?

1 Ответ

0 голосов
/ 16 декабря 2011

Мы поняли это.Мне просто нужно было добавить:

thumbnail.Save(msOutput, ImageFormat.Png);
msOutput.Seek(0, SeekOrigin.Begin); // <--- this line
return base.File(msOutput, "image/png"); 

и у нас все хорошо.

...