日期:2014-05-18 浏览次数:20376 次
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { #region 测试读取 try { string sqlCmd = "select * from Image where imageID = 1"; string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString; SqlConnection sqlconn = new SqlConnection(connection); sqlconn.Open(); SqlCommand sqc = new SqlCommand(sqlCmd, sqlconn); SqlDataReader sdr = sqc.ExecuteReader(); if (sdr.Read()) { Response.ContentType = sdr["imageType"].ToString(); Response.BinaryWrite((byte[])sdr["imageData"]); sdr.Close(); sqlconn.Close(); } else { Response.Write("NULL"); } } catch(Exception ex) { Response.Write(ex.StackTrace); } finally { } #endregion } protected void Button1_Click(object sender, EventArgs e) { #region 测试写入 if (!FileUpload1.HasFile) { Response.Write("请选择图片"); } string fileEx = System.IO.Path.GetExtension(this.FileUpload1.FileName); //获取图片扩展名 if (fileEx != ".gif" && fileEx != ".jpg" && fileEx != ".jpeg" && fileEx!= ".bmp") { Response.Write("只能上传图片"); } else { // ImageType 有用,读取图片的时候需要 int imgSize = this.FileUpload1.PostedFile.ContentLength; //图片大小 (字节) string imgType = this.FileUpload1.PostedFile.ContentType; //图片类型 string imgPath = this.FileUpload1.PostedFile.FileName; //获取图片路径 string imgName = this.FileUpload1.FileName; //获取图片名字 int imgLength = this.FileUpload1.FileName.Length; //获取图片长度 if (imgLength <= 0)//判断是否有图片 return; Byte[] imgByte = new Byte[imgLength]; //用图片的长度来初始化一个字节数组存储临时的图片文件 Stream stream = this.FileUpload1.PostedFile.InputStream; //建立文件流对象 stream.Read(imgByte, 0, imgLength);// 读取图片数据到临时存储体imgByte,0为数据指针位置,fileLength为数据长度 try { string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString; SqlConnection sqlconn = new SqlConnection(connection); sqlconn.Open(); string sqlcmd = "insert into Image values (@ImageType,@ImageData,@ImageTitle)"; SqlCommand sqc = new SqlCommand(sqlcmd, sqlconn); sqc.Parameters.Add("@ImageType", SqlDbType.VarChar, 50).Value = imgType; sqc.Parameters.Add("@ImageData", SqlDbType.Image, imgLength).Value = imgByte;//将二进制的图片赋值给@ImageData sqc.Parameters.Add("@ImageTitle", SqlDbType.VarChar, 50).Value = imgName; int result = sqc.ExecuteNonQuery(); sqlconn.Close(); if (result != 0) { Response.Write("OK"); } else { Response.Write("NO");