将数据库 二进制流 图片数据 显示出来

本文档详细介绍了如何从数据库中获取图片的二进制流数据,并将其转化为图片显示在网页上。关键步骤包括设置Response.ContentType为"image/gif",使用Response.BinaryWrite写入二进制数据,以及在前端通过输入标签绑定数据源实现图片展示。此外,还提供了后台加载和显示多个图片的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将资料库中的二进制流图片数据呈现出来

 将图片存入数据库显示出来

首先先要将图片的二进制流数据从资料库中取出来一定要为 object 类型

要不然强制转换数据会导致类型转化异常 byte[] 类型。

byte[] MyData = new byte[0];

        string ImageGUID = Request.QueryString["ImageGUID"];

        AbstractEngine engine = NJPublicFunc.GetEngine();

        string SQL = " select XAD010 from IMGXAD where GUID='" + ImageGUID + "'";

        try

        {

            DataTable dt = engine.getDataSet(SQL, "temp").Tables[0];

            if (dt != null&&dt.Rows.Count>0)

            {

                MyData = (byte[])dt.Rows[0][0];

                Response.ContentType = "image/gif";

                Response.BinaryWrite(MyData);

            }

        }

        catch (Exception ex)

        {

 

        }

 

重点是下面的两句

 

Response.ContentType = "image/gif";

 Response.BinaryWrite(MyData);

 

这个是将这个二进制流数据 转化为图片 显示在页面上。这里显示出来是整个页面。

 

 

前台可以绑定控件显示出来

 

 

 

    ///<summary>

    ///加載範例圖片

    ///</summary>

    private StringBuilder LoadIMG()

    {

        StringBuilder sb = new StringBuilder();

        sb.AppendLine(@"<table>");

 

        string querySQL = " select XAD009,XAD010,GUID from IMGXAD  WHERE XAD008='1' and XAD001='0'";

        AbstractEngine engine = NJPublicFunc.GetEngine();

        try

        {

            DataTable dt = engine.getDataSet(querySQL, "temp").Tables[0];

            if (dt != null && dt.Rows.Count > 0)

            {

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    if (i % 3 == 0)

                    {

                        sb.AppendLine("<tr>");

                    }

                    sb.AppendLine("<td style=\"width:100px\">");

                    sb.AppendLine("<span>" + LocaleString.getSystemMessageString(glb.LangIni, "message", "str3", "範例:") + dt.Rows[i]["XAD009"].ToString() + "</span><br/>");

                    sb.AppendLine("<input type='image' width='100px' height='100px' src='PicShow.aspx?ImageGUID=" + dt.Rows[i]["GUID"].ToString() + "'/>");

                    sb.AppendLine("</td>");

                    if (i % 3 == 2)

                    {

                        sb.AppendLine("</tr>");

                    }

                }

                if (dt.Rows.Count % 3 != 0)

                {

                    sb.AppendLine("</tr>");

                }

            }

 

            sb.AppendLine(@"</table>");

            engine.close();

            return sb;

        }

        catch (Exception ex)

        {

            engine.close();

            throw ex;

        }

    }

后台租出DIV

在前台写出一个 DIV 

 

<div id="divIMG" runat="server">

 

</div>

然后在Load的时候 写出div InnerHtml

divIMG.InnerHtml = LoadIMG().ToString();

 

这样就完美解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值