asp.net对数据库中图片的上传与读取
点击次数:48 次 发布日期:2008-11-26 10:29:23 作者:源代码网
|
源代码网推荐 一、向数据库添加图片 源代码网推荐 1. UserInfo 源代码网推荐 #region 用户实体 源代码网推荐 public class UserInfo 源代码网推荐 { 源代码网推荐 #region 属性 源代码网推荐 #region 个人信息 源代码网推荐 private Int32 m_UserID;//用户ID 源代码网推荐 private String m_UserName; //用户名 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 用户ID 源代码网推荐 /// </summary> 源代码网推荐 public Int32 UserID 源代码网推荐 { 源代码网推荐 get { return m_UserID; } 源代码网推荐 set { m_UserID = value; } 源代码网推荐 } 源代码网推荐 ///<summary> 源代码网推荐 ///用户登录时使用的名称 源代码网推荐 ///</summary> 源代码网推荐 public String UserName 源代码网推荐 { 源代码网推荐 get { return m_UserName; } 源代码网推荐 set { m_UserName = value; } 源代码网推荐 } 源代码网推荐 private Byte[] _Photo; 源代码网推荐 ///<summary> 源代码网推荐 ///照片 源代码网推荐 ///</summary> 源代码网推荐 public Byte[] Photo 源代码网推荐 { 源代码网推荐 get { return _Photo; } 源代码网推荐 set { _Photo = value; } 源代码网推荐 } 源代码网推荐 private string _ImageType; 源代码网推荐 ///<summary> 源代码网推荐 ///照片格式 源代码网推荐 ///</summary> 源代码网推荐 public String ImageType 源代码网推荐 { 源代码网推荐 get { return _ImageType; } 源代码网推荐 set { _ImageType = value; } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 构造函数 源代码网推荐 /// <summary> 源代码网推荐 /// 构造函数 源代码网推荐 /// </summary> 源代码网推荐 public UserInfo() 源代码网推荐 { } 源代码网推荐 /// <summary> 源代码网推荐 /// 设置用户信息 源代码网推荐 /// </summary> 源代码网推荐 public UserInfo(DataRow dataRow) 源代码网推荐 { 源代码网推荐 m_UserID = (int)dataRow["UserID"]; 源代码网推荐 m_UserName = (string)dataRow["UserName"]; 源代码网推荐 _ImageType = dataRow["ImageType"] == System.DBNull.Value ? string.Empty : dataRow["ImageType"].ToString(); 源代码网推荐 _Photo = dataRow["Photo"] == System.DBNull.Value ? new byte[0] : (byte[])dataRow["Photo"]; 源代码网推荐 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #region 用户实体 源代码网推荐 public class UserInfo 源代码网推荐 { 源代码网推荐 #region 属性----------------------------------------------------------- 源代码网推荐 #region 个人信息 源代码网推荐 private Int32 m_UserID;//用户ID 源代码网推荐 private String m_UserName; //用户名 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 用户ID 源代码网推荐 /// </summary> 源代码网推荐 public Int32 UserID 源代码网推荐 { 源代码网推荐 get { return m_UserID; } 源代码网推荐 set { m_UserID = value; } 源代码网推荐 } 源代码网推荐 ///<summary> 源代码网推荐 ///用户登录时使用的名称 源代码网推荐 ///</summary> 源代码网推荐 public String UserName 源代码网推荐 { 源代码网推荐 get { return m_UserName; } 源代码网推荐 set { m_UserName = value; } 源代码网推荐 } 源代码网推荐 private Byte[] _Photo; 源代码网推荐 ///<summary> 源代码网推荐 ///照片 源代码网推荐 ///</summary> 源代码网推荐 public Byte[] Photo 源代码网推荐 { 源代码网推荐 get { return _Photo; } 源代码网推荐 set { _Photo = value; } 源代码网推荐 } 源代码网推荐 private string _ImageType; 源代码网推荐 ///<summary> 源代码网推荐 ///照片格式 源代码网推荐 ///</summary> 源代码网推荐 public String ImageType 源代码网推荐 { 源代码网推荐 get { return _ImageType; } 源代码网推荐 set { _ImageType = value; } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 #region 构造函数------------------------------------------------------- 源代码网推荐 /// <summary> 源代码网推荐 /// 构造函数 源代码网推荐 /// </summary> 源代码网推荐 public UserInfo() 源代码网推荐 { } 源代码网推荐 /// <summary> 源代码网推荐 /// 设置用户信息 源代码网推荐 /// </summary> 源代码网推荐 public UserInfo(DataRow dataRow) 源代码网推荐 { 源代码网推荐 m_UserID = (int)dataRow["UserID"]; 源代码网推荐 m_UserName = (string)dataRow["UserName"]; 源代码网推荐 _ImageType = dataRow["ImageType"] == System.DBNull.Value ? string.Empty : dataRow["ImageType"].ToString(); 源代码网推荐 _Photo = dataRow["Photo"] == System.DBNull.Value ? new byte[0] : (byte[])dataRow["Photo"]; 源代码网推荐 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 2. 数据层 Framework.Sys.DAL.User: 源代码网推荐 /// <summary> 源代码网推荐 /// 添加照片 源代码网推荐 /// </summary> 源代码网推荐 public bool AddPhoto(UserInfo currentUser) 源代码网推荐 { 源代码网推荐 string sql = "update Sys_Users set [Photo]=@Photo,[ImageType]=@ImageType where [UserID]=@UserID"; 源代码网推荐 源代码网推荐 SqlParameter[] parameters ={ 源代码网推荐 new SqlParameter("@UserID", SqlDbType.Int, 4), 源代码网推荐 new SqlParameter("@Photo", SqlDbType.Image, 16), //注意参数类型 源代码网推荐 new SqlParameter("@ImageType", SqlDbType.NVarChar, 50)}; 源代码网推荐 parameters[0].Value = currentUser.UserID; 源代码网推荐 parameters[1].Value = currentUser.Photo; 源代码网推荐 parameters[2].Value = currentUser.ImageType; 源代码网推荐 源代码网推荐 int rowsAffected = 0; 源代码网推荐 RunSQL(sql, ref rowsAffected, parameters); 源代码网推荐 return (rowsAffected > 0); 源代码网推荐 } 源代码网推荐 3. 业务层 Framework.Sys.BLL.User: 源代码网推荐 /// <summary> 源代码网推荐 /// 添加照片 源代码网推荐 /// </summary> 源代码网推荐 public bool AddPhoto(UserInfo currentUser) 源代码网推荐 { 源代码网推荐 return dataUser.AddPhoto(currentUser); 源代码网推荐 } 源代码网推荐 4. UI层:(UserPhotoAdd.aspx) 源代码网推荐 (1)前台代码:(注意img 的src 属性设为显示图片的页面) 源代码网推荐 <img src="http://www.zzchn.com/edu/20080727/UserPhoto.aspx" height="200" width="300" /> 源代码网推荐 <br /> 源代码网推荐 <asp:FileUpload ID="upPhoto" runat="server" /> 源代码网推荐 <asp:Button Text=" 添 加 " runat="server" ID="btnAddPhoto" OnClick="btnAddPhoto_Click" /> 源代码网推荐 (2)后台代码: 源代码网推荐 Framework.Sys.BLL.User myBiz = new Framework.Sys.BLL.User(); 源代码网推荐 protected void Page_Load(object sender, EventArgs e) 源代码网推荐 { 源代码网推荐 源代码网推荐 } 源代码网推荐 protected void btnAddPhoto_Click(object sender, EventArgs e) 源代码网推荐 { 源代码网推荐 Response.Clear(); 源代码网推荐 int imgSize = upPhoto.PostedFile.ContentLength;//图片的大小 源代码网推荐 string imgType = upPhoto.PostedFile.ContentType;//图片类型 源代码网推荐 Stream imgStream = upPhoto.PostedFile.InputStream;//读取图片 源代码网推荐 源代码网推荐 Byte[] buff = new Byte[imgSize]; 源代码网推荐 //方法1 源代码网推荐 imgStream.Read(buff, 0, imgSize); 源代码网推荐 //方法2 源代码网推荐 //BinaryReader rd = new BinaryReader(imgStream); 源代码网推荐 //rd.Read(buff, 0, imgSize); 源代码网推荐 源代码网推荐 UserInfo user = new UserInfo(); 源代码网推荐 user.UserID = 9; 源代码网推荐 user.Photo = buff;//*** 源代码网推荐 user.ImageType = imgType; 源代码网推荐 源代码网推荐 if (myBiz.AddPhoto(user)) 源代码网推荐 base.WriteLine("添加成功"); 源代码网推荐 else 源代码网推荐 base.WriteLine("添加失败"); 源代码网推荐 Response.End(); 源代码网推荐 } 源代码网推荐 二、从数据库读取图片 源代码网推荐 1. 数据层:(Framework.Sys.DAL.User) 源代码网推荐 public DataRow Retrieve(int userID) 源代码网推荐 { 源代码网推荐 string sql = "SELECT Sys_Users.* WHERE UserID ={0}"; 源代码网推荐 sql = string.Format(sql, userID); 源代码网推荐 using (DataSet users = RunSQL(sql, "Users")) 源代码网推荐 { 源代码网推荐 return users.Tables[0].Rows[0]; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 2. 业务层:(Framework.Sys.BLL.User) 源代码网推荐 public UserInfo Retrieve(int userID) 源代码网推荐 { 源代码网推荐 DataRow userRow = dataUser.Retrieve(userID); 源代码网推荐 return new UserInfo(userRow); 源代码网推荐 } 源代码网推荐 3. UI层:(http://www.zzchn.com/edu/20080727/UserPhoto.aspx) 源代码网推荐 (1)前台代码:无 源代码网推荐 (2)后台代码: 源代码网推荐 Framework.Sys.BLL.User myBiz = new Framework.Sys.BLL.User(); 源代码网推荐 protected void Page_Load(object sender, EventArgs e) 源代码网推荐 { 源代码网推荐 HttpContext.Current.Response.ClearContent(); 源代码网推荐 try 源代码网推荐 { 源代码网推荐 UserInfo user = myBiz.Retrieve(9); 源代码网推荐 Response.ContentType = user.ImageType; 源代码网推荐 Response.BinaryWrite(user.Photo); 源代码网推荐 } 源代码网推荐 catch (Exception exc) 源代码网推荐 { 源代码网推荐 throw new Framework.AppException(exc.Message); 源代码网推荐 } 源代码网推荐 HttpContext.Current.Response.End(); 源代码网推荐 } 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
