在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
资料原自网络,本人小小修改一下,备注以后使用。 CS代码
1 /// <summary> 2 /// asp.net上传图片并生成缩略图 3 /// </summary> 4 /// <param name="upImage">HtmlInputFile控件</param> 5 /// <param name="sSavePath">保存的路径,些为相对服务器路径的下的文件夹</param> 6 /// <param name="sThumbExtension">缩略图的thumb</param> 7 /// <param name="intThumbWidth">生成缩略图的宽度</param> 8 /// <param name="intThumbHeight">生成缩略图的高度</param> 9 /// <returns>缩略图名称</returns> 10 public string UpLoadImage(HtmlInputFile upImage, string sSavePath, string sThumbExtension, int intThumbWidth, int intThumbHeight) 11 { 12 #region 13 #region 14 string sThumbFile = ""; 15 string sFilename = ""; 16 if (txtTitle.Text.Trim().Length > 0) 17 { 18 } 19 else 20 { 21 Jscript.Alert("标题不能为空"); 22 return "标题不能为空"; 23 } 24 School.Model.BlogUserPic bumodel = new School.Model.BlogUserPic(); 25 School.BLL.BlogUserPic buBll = new School.BLL.BlogUserPic(); 26 27 //获取用户ID 28 EncryptStr Encry = new EncryptStr(); 29 userID = Encry.Decrypt(HttpContext.Current.Request.Cookies["SchoolStudent"]["UserID"].ToString()); 30 31 //设置添加信息 32 bumodel.PicTitle = Utils.ChkSQL(this.txtTitle.Text.Trim().ToString()); 33 bumodel.PicDesc = Utils.ChkSQL(this.txtPicDesc.Text.Trim().ToString()); 34 bumodel.addTime = DateTime.Now; 35 bumodel.UserId = Utils.StrToInt(userID, 0); 36 bumodel.uploadIP = DNTRequest.GetIP(); 37 bumodel.IsDel = 0; 38 bumodel.IsCheck = 1; 39 #endregion 40 #region 41 if (upImage.PostedFile != null) 42 { 43 HttpPostedFile myFile = upImage.PostedFile; 44 int nFileLen = myFile.ContentLength; 45 if (nFileLen == 0) 46 { 47 Jscript.Alert("没有选择上传图片"); 48 return "没有选择上传图片"; 49 } 50 if (nFileLen > 2097152) 51 { 52 Jscript.Alert("上传图片不能大于2MB"); 53 return "上传图片不能大于2MB"; 54 } 55 //获取upImage选择文件的扩展名 56 string extendName = System.IO.Path.GetExtension(myFile.FileName).ToLower(); 57 //判断是否为图片格式 58 if (extendName != ".jpg" && extendName != ".jpge" && extendName != ".gif" && extendName != ".bmp" && extendName != ".png") 59 { 60 Jscript.Alert("图片格式不正确"); 61 return "图片格式不正确"; 62 } 63 byte[] myData = new Byte[nFileLen]; 64 myFile.InputStream.Read(myData, 0, nFileLen); 65 sFilename = System.IO.Path.GetFileName(myFile.FileName); 66 int file_append = 0; 67 //检查当前文件夹下是否有同名图片,有则在文件名+1 68 while (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename))) 69 { 70 file_append++; 71 sFilename = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) 72 + file_append.ToString() + extendName; 73 } 74 System.IO.FileStream newFile = new System.IO.FileStream(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename), 75 System.IO.FileMode.Create, System.IO.FileAccess.Write); 76 newFile.Write(myData, 0, myData.Length); 77 newFile.Close(); 78 //以上为上传原图 79 #region 80 try 81 { 82 //原图加载 83 using (System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename))) 84 { 85 //原图宽度和高度 86 int width = sourceImage.Width; 87 int height = sourceImage.Height; 88 int smallWidth; 89 int smallHeight; 90 //获取第一张绘制图片的大小,(比较 原图的宽/缩略图的宽 和 原图的高/缩略图的高) 91 if (((decimal)width) / height <= ((decimal)intThumbWidth) / intThumbHeight) 92 { 93 smallWidth = intThumbWidth; 94 smallHeight = intThumbWidth * height / width; 95 } 96 else 97 { 98 smallWidth = intThumbHeight * width / height; 99 smallHeight = intThumbHeight; 100 } 101 102 //判断缩略图在当前文件夹下是否同名称文件存在 103 file_append = 0; 104 sThumbFile = sThumbExtension + System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) + extendName; 105 while (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sThumbFile))) 106 { 107 file_append++; 108 sThumbFile = sThumbExtension + System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) + file_append.ToString() + extendName; 109 } 110 111 //缩略图保存的绝对路径 112 string smallImagePath = Server.MapPath(sSavePath) + sThumbFile; 113 //System.Web.HttpContext.Current.Server.MapPath(sSavePath) + sThumbFile; 114 //bumodel.PicUrl = Server.MapPath(smallImagePath); 115 bumodel.PicUrl = "/UploadBlogPhoto/" + userID + "/" + sThumbFile;//压缩过的图片 116 //smallImagePath; 117 //业务层 增加方法 bumodel是model 118 buBll.Add(bumodel);//添加相片 119 Response.Write("<script language='JavaScript'>alert('添加相片成功');window.location='BlogUserPic.aspx?userID=" + userID + "';</script>"); 120 //Response.End(); 121 //新建一个图板,以最小等比例压缩大小绘制原图 122 using (System.Drawing.Image bitmap = new System.Drawing.Bitmap(smallWidth, smallHeight)) 123 { 124 //绘制中间图 125 using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap)) 126 { 127 //高清,平滑 128 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; 129 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 130 g.Clear(System.Drawing.Color.White); 131 g.DrawImage( 132 sourceImage, new System.Drawing.Rectangle(0, 0, smallWidth, smallHeight), 133 new System.Drawing.Rectangle(0, 0, width, height), System.Drawing.GraphicsUnit.Pixel); 134 } 135 //新建一个图板,以缩略图大小绘制中间图 136 using (System.Drawing.Image bitmap1 = new System.Drawing.Bitmap(intThumbWidth, intThumbHeight)) 137 { 138 //绘制缩略图 139 using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap1)) 140 { 141 //高清,平滑 142 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; 143 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 144 g.Clear(System.Drawing.Color.White); 145 int lwidth = (smallWidth - intThumbHeight) / 2; 146 int bheight = (smallHeight - intThumbHeight) / 2; 147 g.DrawImage(bitmap, new Rectangle(0, 0, intThumbWidth, intThumbHeight), lwidth, bheight, intThumbWidth, intThumbHeight, GraphicsUnit.Pixel); 148 g.Dispose(); 149 bitmap1.Save(smallImagePath, System.Drawing.Imaging.ImageFormat.Jpeg); 150 } 151 } 152 } 153 154 } 155 } 156 157 catch 158 { 159 //出错则删除 160 System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sFilename)); 161 Jscript.Alert("图片格式不正确"); 162 return "图片格式不正确"; 163 } 164 #endregion 165 //返回缩略图名称 166 return sThumbFile; 167 } 168 #endregion 169 Jscript.Alert("没有选择图片"); 170 return "没有选择图片"; 171 #endregion 172 }
CS button控件事件
1 /// <summary> 2 /// 上传图片事件 3 /// </summary> 4 /// <param name="sender">sender</param> 5 /// <param name="e">e</param> 6 protected void btnSmbit_Click(object sender, EventArgs e) 7 { 8 //获取用户ID 9 EncryptStr Encry = new EncryptStr(); 10 userID = Encry.Decrypt(HttpContext.Current.Request.Cookies["SchoolStudent"]["UserID" ].ToString()); 11 //我们是根据用户ID生成一个文件夹,保存到单独的文件夹 12 this.UpLoadImage(this.File1, "../UploadBlogPhoto/" + userID + "/", "thumb_", 600, 600); 13 }
前台代码 <td> 添加相片: <input /> <asp:Button ID="btnSmbit" runat="server" Text="提交" OnClick="btnSmbit_Click" /> </td>
|
请发表评论