我把图片以image的格式存放在数据库里,现在想要在repeater中的image中读取对应的ID下的图片,如何实现???

解决方案 »

  1.   

    <image src="./getimage.aspx?id=id值" />
      

  2.   

    自己写个一般处理程序,读取数据库里的图片后(应该是二进制流数据),通过设置输出流的数据格式就可以了以下给出部分代码:
    <img style="border:0px;" src='Handler/ImageViewer.aspx?ImageID=<%# Eval("FamilyNameID") %>&Width=140&Height=140'
    下面是处理程序protected void Page_Load(object sender, EventArgs e)
        {
            Response.ClearContent();
            Response.ContentType = "image/jpeg";
            Response.Cache.SetCacheability(HttpCacheability.Public);
            //context.Response.BufferOutput = false;
            FamilyNameBLL fnb = new FamilyNameBLL();
            using (Bitmap newImg = fnb.FamilyNameImageSelect(long.Parse(Request.QueryString["ImageID"].ToString()), int.Parse(Request.QueryString["Width"]), int.Parse(Request.QueryString["Height"])))
            {
                fnb = null;
                using (MemoryStream ms = new MemoryStream())
                {
                    newImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    Response.BinaryWrite(ms.ToArray());
                }
            }
        }
    当然,我上面这里因项目需要,我在BLL那把图片缩略了,不过不影响思路,我们可以直接把取到的图片进制数据直接丢给 Response.OutputStream这个输出流的,效果是一样的