无法打印/保存System.Drawing和Response.OutputStream生成的图像

时间:2013-08-20 13:41:47

标签: c# asp.net

我在执行网页时创建的打印/保存图像有问题,并通过Response.OutputStream发送到浏览器。

我有这个简单的功能:

 private void makepng()
 {            
        // INFO: the MyBitmapFile bitmap is created here, and then streamed to browser below:

        Response.Clear();
        Response.ClearHeaders();
        Response.ContentType = "image/png";

        using (MemoryStream ms = new MemoryStream())
        {
            MyBitmapFile.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            ms.WriteTo(Response.OutputStream);
        }
        Response.End();
 }

它还会在浏览器中显示图像,但您无法打印或右键单击图像并保存

  • 如果我这样做,则会出现弹出错误,指出“正在保存或检索的文件类型已被阻止。”

  • 如果我将makepng()作为protected void Page_Load(object sender, EventArgs e)中的唯一内容,那么一切正常,我可以打印/保存。

  • 但如果我点击按钮调用它,则显示图像,但我无法打印/保存 - 并得到上述错误。

我认为问题在于按钮的回发,但我不知道如何让它工作。

0 个答案:

没有答案