显示字节数组中的图像

本文关键字:图像 数组 字节 字节数 显示 | 更新日期: 2024-10-30 12:50:32

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

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

它显示图像。 但也下载它。我只想显示而不是下载。谁能帮我做这件事?提前谢谢。

显示字节数组中的图像

只需删除该行

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

这一行给出"命令",浏览器开始下载它。

更新

如果我理解得很好,您尝试在页面上的某个位置显示此图像。但我也明白您在同一页面上添加了该代码与其余代码。这不起作用,因为您"破坏"了页面。

.ashx创建一个处理程序,然后放置该代码。

然后,从您的页面中,将该处理程序调用为

<img src="showimage.ashx" />

你看到了。

添加处理程序

带参数

 <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 %>'>

内部处理程序从数据库获取图像并按如下所示传递

 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]);
    }