今天做了模块中是将个人的照片存入数据库中,然后在从数据库中提出出来在页面显示。
1. 首先在数据库中建立一个字段用来存储照片的二进制数据。例如:image(字段类型image)
2. 在后台例如上传控件将图片获取并转化为二进制存储,存进数据库中去
//---------------关于图片上传的处理----------------///
if (imageUpload.FileName == null || imageUpload.FileName.Trim() == "" || imageUpload.PostedFile.ContentLength == 0) { msg.Text = "请选择需要上传的照片文件!"; return; } else { string fileType = imageUpload.PostedFile.ContentType.Trim(); if (fileType != "image/gif" && fileType != "image/jpeg") { msg.Text = "图片文件只允许gif或者jpg格式!"; return; } } int imageSize = imageUpload.PostedFile.ContentLength; // 文件大小 if (imageSize > 204800) { msg.Text = "照片文件大小(" + imageSize.ToString() + ")已经超过了200k!"; return; } byte[] image = new byte[imageSize]; Stream ImageStream = imageUpload.PostedFile.InputStream; ImageStream.Read(image, 0, imageSize); //---------------图片处理结束---------------// //插入数据库的操作省略...
3. 还要做一个图片显示的文件,作为img控件显示的url路径文件dispPhoto.aspx
后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{ string sql = "select image from tickets where id=@id"; session s = new session(); if (s.GetSession("ticketid").ToString() != "") { SqlParameter[] param = { new SqlParameter("@id",SqlDbType.Int)}; param[0].Value = s.GetSession("ticketid"); SqlDataReader dr = SqlHelper.ExecuteReader(sql, param); if (dr.HasRows) { if (dr.Read()) { byte[] img = (byte[])dr["image"]; Response.ContentType = "image/gif"; Response.BinaryWrite(img); } } dr.Close(); dr.Dispose(); } }
4. 在前台显示
image.ImageUrl = "dispPhoto.aspx";