从字节数组显示图像

时间:2013-12-18 06:42:24

标签: c# asp.net image

我在会话中存储了图像字节数组。

    Byte[] bytes = (Byte[])Session["STORED_IMAGE"];

我希望在回发后在图像控件中显示它。我试过这段代码

    Byte[] bytes = (Byte[])Session["STORED_IMAGE"];
    Response.Buffer = true;
    Response.Charset = "";
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "image/jpeg";
    Response.AddHeader("content-disposition", "attachment;filename=sandra");
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();

显示图像。还要下载它。我只想显示不下载。 任何人都可以帮我这样做吗?先谢谢。

2 个答案:

答案 0 :(得分:2)

只需删除该行

即可
 Response.AddHeader("content-disposition", "attachment;filename=sandra");

此行显示“命令”,浏览器开始下载。

更新

如果我理解得很好,您会尝试在页面上的某个位置显示此图片。 但我也理解你在同一页面上用其余代码添加该代码。这不起作用,因为你“打破”了页面。

制作一个处理程序.ashx并放置该代码。

然后从您的页面中将该处理程序称为

<img src="showimage.ashx" />

你看到了它。

答案 1 :(得分:1)

添加处理程序

带参数

 <asp:Image runat="server" Width="40px" Height="40px" ImageUrl='<%# "Handler.ashx?VehicleCode=" + Eval("VehicleCode")%>'>

没有参数

 <asp:Image runat="server" Width="40px" Height="40px" ImageUrl='<%# "Handler.ashx %>'>

内部处理程序从db获取图像并以此格式传递

 public void ProcessRequest(HttpContext context)
    {

      //if you pass parameter use this
        string para = context.Request.QueryString["VehicleCode"];

      //get the image from data base in here im using a web service
        System.Data.DataSet ds = new System.Data.DataSet();
        MMS_MasterWebService.MMS_MasterMaintenance obj = new MMS_MasterWebService.MMS_MasterMaintenance();
        obj.Url =  "http://192.168.48.10/SHOREVision_MMS_Service/MMS_MasterMaintenance.asmx";
        ds = obj.GetVehicleMasterByCode(para);
        context.Response.BinaryWrite((byte[])ds.Tables[0].Rows[0][21]);

    }