我把图片用二进制形式(byte[])存入了数据库的image类型字段中,请问如何将它读取到image控件上?
解决方案 »
- 请教各位技术同行,【目前有没有这样一种技术】
- 急 在线等
- 【网络问题帖】msc地址是什么?网吧把mac和ip地址绑定了?
- 急求一个思路.首页的固定模块调用是怎么回事呢?
- 在.net2.0中遇到如下所示的问题?
- 很急,在线等,问一个加密的办法!
- chr()函数我该用什么替换??
- Visual Web Developer 2005 express是否完全兼容 .net f1.1?
- 为什么执行SELECT的时候正常,执行INSERT,DELETE,UPDATE的时候出现错误!!!
- 关于弹出下载框的问题?
- 为什么连不上SQL SERVER2000?
- 为什么我这样子写的目录形式,aspx页面读取不到我想链接的JS肢本呢??
//建立数据库链接
SqlConnection Con = new SqlConnection("Data Source=KING;Initial Catalog=testdb;User ID=sa;Pwd=;");
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read();
Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
Response.End();
Con.Close();
详细的你可以去这找找
www.chinabs.net
<asp:Image id="Image1" style="Z-INDEX: 106; LEFT: 536px; POSITION: absolute; TOP: 336px" runat="server"
ImageUrl="ShowFile.aspx?keyid=9"></asp:Image>ShowFile.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
if (Request["keyid"]!=null)
{
clsUpDownFile clu=new clsUpDownFile();
string atttable="CYMailReceiveAdjunct";
string filetype;
string filename;
byte[] filebody=clu.DownFileFromDB(atttable,Request["keyid"].ToString(),out filetype,out filename);
this.Response.ContentType=filetype;
this.Response.AppendHeader("Content-Disposition","attachment;filename="+ HttpUtility.UrlEncode(filename));
this.Response.BinaryWrite(filebody);
this.Response.End();
}
}byte[] filebody是文件的二进制数组。你只要能得到这个样,不管是从数据库里取出的还是从硬盘上取的都没有区别了。public byte[] DownFileFromDB(string tablename,string keyid,out string filetype,out string filename)
{
try
{
this.lDB=new clsODBCDB();
this.lDB.SqlStr="SELECT filetype,filename,filebody FROM "+tablename+" WHERE id="+keyid;
if (this.lDB.ExeSql())
{
if (this.lDB.ResultTable.Rows.Count>0)
{
filetype=this.lDB.ResultTable.Rows[0]["filetype"].ToString();
filename=this.lDB.ResultTable.Rows[0]["filename"].ToString();
return (byte[])this.lDB.ResultTable.Rows[0]["filebody"];
}
else
throw new Exception();
}
else
throw new Exception();
}
catch(Exception ex)
{
filetype="";
filename="";
return new byte[0];
}
}