您的位置:首页 > 数据库

image控件与数据库中二进制图片的交互(存储与读取)

2013-04-25 22:03 309 查看
首先引入这个问题,一个注册会员的网站,一般会要求用户上传头像。这里我们就是针对上传头像这一模块,做相应的操作。

当用户把头像上传到注册页面后,注册页面要显示这个头像,还能在此会员下次登录这个网站时,显示出会员的头像,那么我们头像的信息应该也与会员别的信息一样被存入到数据库中,即数据库里有一个字段是关于头像的。至于这个字段到底应该存什么,可以分为两种情况:存入头像的链接地址,即imageURL;或头像转为二进制流后存入。本例中我们的数据库从简,只设置两个字段(会员编号cBh,会员头像bPhoto),头像是以二进制流存入数据库的。

先来看看我们页面上关于头像上传的部分,如下图所示:

显示在image控件上

if (pe.BPhoto.Length<1)//如果此人没有上传头像则头像为系统默认头像
{
this.photo.ImageUrl = "~/images/photo.jpg";
}
else
{
byte[] picture = uworker.BPhoto;
string strRotePath = "~/images";
string strName = Guid.NewGuid().ToString();
string strPath = strRotePath + "/" + strName + ".jpg";
string strAbsolutePath = Server.MapPath(strPath);
FileStream fs = new FileStream(strAbsolutePath, FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(picture);
bw.Flush();
bw.Close();
fs.Close();
this.photo.ImageUrl = strPath;
}


当然其实更好的方法是将图片的URL地址存入数据库,以上的操作中只需要将自动产生的路径赋给相应控件就行了,这里就不做详细介绍。

好了,以上就是全部的操作了。希望能帮到在读的你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: