根据网上代码自己该动了些 #region 上传图片到数据库 private void UpIMGButton_Click(object sender, System.EventArgs e) { string exName=UpFile.Value.Substring(UpFile.Value.LastIndexOf(".")+1).ToUpper();//找出图片的后缀名 string ImgName=DateTime.Now.ToString("yyyyMMddhhmmssfff")+"."+exName; if (UpFile.PostedFile.ContentLength==0) { Response.Write("<script> alert('你上传的图片不能为空!');</script>"); } else { try { Byte[] FileByte = new byte[UpFile.PostedFile.ContentLength]; Stream ObjectStream = UpFile.PostedFile.InputStream; ObjectStream.BeginRead(FileByte,0,UpFile.PostedFile.ContentLength,null,null); string imgType=UpFile.PostedFile.ContentType; Byte[] SmallFileByte = new byte[UpFile.PostedFile.ContentLength]; SmallFileByte=CreateThumnail(ObjectStream,100,100);
string ConStr ="UID=sa,PWD=sa,Server=local,Database=mydb"; SqlConnection Conn = new SqlConnection(ConStr); Conn.Open(); SqlCommand myCommand =new SqlCommand(); myCommand.Connection=Conn; myCommand.CommandText="insert into [UpImage] (imageName,image,imgType,SmallImage) values (@ImgName,@FileByte,@imgType,@SmallImage)"; myCommand.Parameters.Add("@ImgName",ImgName); myCommand.Parameters.Add("@FileByte",FileByte); myCommand.Parameters.Add("@imgType",imgType); myCommand.Parameters.Add("@SmallImage",SmallFileByte); myCommand.ExecuteNonQuery(); Response.Write("<script> alert('图片保存到数据库成功!');</script>"); } catch(Exception ex) { Response.Write (ex.Message); } } } #endregion #region 生成缩略图 private Byte[] CreateThumnail(Stream ImageStream,int tWidth, int tHeight) { System.Drawing.Image g = System.Drawing.Image.FromStream(ImageStream); int[] thumbSize = new int[]{1,1}; thumbSize = NewthumbSize(g.Width, g.Height, tWidth, tHeight); Bitmap imgOutput = new Bitmap(g, thumbSize[0], thumbSize[0]); MemoryStream imgStream = new MemoryStream(); System.Drawing.Imaging.ImageFormat thisFormat = g.RawFormat; imgOutput.Save(imgStream, thisFormat); Byte[] imgbin =new byte[imgStream.Length]; imgStream.Position = 0; Int32 n = imgStream.Read(imgbin,0,imgbin.Length); g.Dispose(); imgOutput.Dispose(); return imgbin; } #endregion
#region 根据上传图片调整缩略图的尺寸 protected int[] NewthumbSize(int currentwidth,int currentheight,int newWidth ,int newHeight) { int tempMultiplier; if(currentheight > currentwidth) { tempMultiplier = newHeight / currentheight; } else { tempMultiplier = newWidth / currentwidth; }
int[] NewSize = new int[]{(currentwidth * tempMultiplier),(currentheight * tempMultiplier)}; return NewSize; } #endregion
////图片显示页的代码 myCommand.CommandText="select smallimage from [UpImage] "; SqlDataReader dr =db.myCommand.ExecuteReader(); this.Response.ContentType="image/gif"; while(dr.Read()) { Response.BinaryWrite((byte[])dr["smallimage"]); }
|
请发表评论