在winform中 可以把图片序列化后存入数据库 然后可以反序列化后再把图片显示到picturebox上,picturebox.Image=*.jpg; 能显示出来没有问题在web窗体上` 我也是把 图片序列化成二进制的流存入数据库 然后再反序列化出来 这个过程没有问题 遇到的麻烦是 发现web里面的Image imagebutton都没有image属性`而是imagerul属性, 也就是说在web里面要想让图片显示到image上那么在目录下必须存在这张图片的实体,如果没有这张图片就不能显示 是这样的吗?能做到直接从数据库中读出来显示在image这个控件上吗? 如果能的话希望大家指点我一下吧 注:数据库中不存图片的路径,直接存图片的二进制流
http://www.jb51.net/article/17466.htm
========
从数据库读出来,直接将Byte[]数组用Response.BinaryWrite出来就可以了.要显示在Image控件上,可以
将img的ImageUrl指向这个aspx文件,
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页 文本内容发现无效字符等等这样的字符
Response.AddHeader("content-type","image/jpeg")
2.aspx页面上,不能有其他html内容
(专门处理二进制流的页面)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";
但是还是不显示图片 这是为什么呢?路径是对的
2,从数据库中取出图片显示在新建空白页上.
3,image.imagerurl=新建空白页的URL.