在winform中  可以把图片序列化后存入数据库  然后可以反序列化后再把图片显示到picturebox上,picturebox.Image=*.jpg; 能显示出来没有问题在web窗体上` 我也是把 图片序列化成二进制的流存入数据库  然后再反序列化出来  这个过程没有问题  遇到的麻烦是 发现web里面的Image  imagebutton都没有image属性`而是imagerul属性, 也就是说在web里面要想让图片显示到image上那么在目录下必须存在这张图片的实体,如果没有这张图片就不能显示 是这样的吗?能做到直接从数据库中读出来显示在image这个控件上吗? 如果能的话希望大家指点我一下吧 注:数据库中不存图片的路径,直接存图片的二进制流  

解决方案 »

  1.   

    参考
    http://www.jb51.net/article/17466.htm
      

  2.   

    能做到直接从数据库中读出来显示在image这个控件上吗? 
    ========
     从数据库读出来,直接将Byte[]数组用Response.BinaryWrite出来就可以了.要显示在Image控件上,可以
    将img的ImageUrl指向这个aspx文件,
      

  3.   

            SqlConnection conn = new SqlConnection("data source=.;uid=sa;pwd=sa;database=thingking");
            conn.Open();
            SqlCommand comm = new SqlCommand("select imagee from im where ws='888'", conn);
            SqlDataReader dr = comm.ExecuteReader();
            while (dr.Read())
            {
                Response.ContentType = (string)dr["imagee"].ToString();
                Response.OutputStream.Write((byte[])dr["imagee"],0,(int)dr["imagee"].ToString().Length);
                
                Response.End(); 
            }
    但是这个会出现:无法显示 XML页  文本内容发现无效字符等等这样的字符
      

  4.   

    1.确保content-type是正确的
    Response.AddHeader("content-type","image/jpeg")
    2.aspx页面上,不能有其他html内容
      

  5.   

    如果我不执行这个代码  执行别的都没有问题  就执行这代码的时候就出这个错了`  着急啊  谁能给点部分代码参考一下啊   谢谢了   刚刚接确WEB 的`
      

  6.   

    因为我感觉那样很烦` 那样已经实现了` 感觉不好` 就想用流来做`但遇到了些问题  跟winform不太一样`  没有学过asp.net 自学真累啊
      

  7.   

    综合大家说的我写了以下代码
    (专门处理二进制流的页面)using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Data.SqlClient;public partial class Default4 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string strImageID = Request.QueryString["ws"];            SqlConnection myConnection = new SqlConnection("data source=.;uid=sa;pwd=sa;database=thingking");
                myConnection.Open();
                SqlCommand comm = new SqlCommand("select imagee from im where ws='"+strImageID+"'", myConnection);
                SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
                while (dr.Read())
                {
                    Response.Clear();
                    Response.ContentType = "image/jpeg";
                    byte[] b = (byte[])dr["imagee"];
                    //下面的方法就是用来让图片可以正常显示 
                    byte[] temp = new byte[b.Length - 78];
                    Array.Copy(b, 78, temp, 0, b.Length - 78);
                    Response.BinaryWrite(temp);
                }
            }
            catch (Exception ex)
            {            Response.Write(ex.ToString());
            }
            Response.End();
        }
    }
    (调用页面)    protected void Button3_Click(object sender, EventArgs e)
        {        this.Image1.ImageUrl = FormatURL("888");
        }    protected string FormatURL(string strArgument) 
        { 
             return "ReadImage.aspx?ws=" + strArgument; 
        }
    我跟踪了一下image.imagerurl="~/Image/未命名.jpg";
    但是还是不显示图片  这是为什么呢?路径是对的
      

  8.   

    1,另外建一个空白页.
    2,从数据库中取出图片显示在新建空白页上.
    3,image.imagerurl=新建空白页的URL.