我在会话中存储了图像字节数组。
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();
显示图像。还要下载它。我只想显示不下载。 任何人都可以帮我这样做吗?先谢谢。
答案 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]);
}