显示字节数组中的图像
本文关键字:图像 数组 字节 字节数 显示 | 更新日期: 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]);
}