public bool UpLoadJpg(FileUpload UploadFile) { if (UploadFile.HasFile)//检查是否已经选择文件 { string filename = UploadFile.FileName.ToLower(); int i = filename.LastIndexOf("."); filename = filename.Substring(i, filename.Length - i); if (!(filename == ".jpg" || filename == ".jpeg" || filename == ".bmp")) { MSG = "请选择jpg或bmp格式的图片!"; return(false); }//检查上传文件的格式是否有效 if (UploadFile.PostedFile.ContentLength == 0 || UploadFile.PostedFile.ContentLength >= Size) { MSG = "指定的文件大小不符合要求,应在" + Size.ToString() + "字节以内!"; return(false); }//检查图片文件的大小 //生成原图 //System.Drawing.Image imgFile = System.Drawing.Image.FromFile(Filename); //imgFile.Save(NewFilename, DesiredFormat); Stream oStream = UploadFile.PostedFile.InputStream; System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream); int owidth = oImage.Width; //原图宽度 int oheight = oImage.Height; //原图高度 if (owidth > LimitWidth || oheight > LimitHeight) { MSG = "超过允许的图片尺寸范围,应在" + LimitWidth.ToString() + "×" + LimitHeight.ToString() + "范围内!"; return(false); }//检查是否超出规定尺寸 if (IsRate) { //按比例计算出缩略图的宽度和高度 if (owidth >= oheight) { THeight = (int)Math.Floor(Convert.ToDouble(oheight) * (Convert.ToDouble(TWidth) / Convert.ToDouble(owidth)));//等比设定高度 } else { TWidth = (int)Math.Floor(Convert.ToDouble(owidth) * (Convert.ToDouble(THeight) / Convert.ToDouble(oheight)));//等比设定宽度 } } //生成缩略原图 Bitmap tImage = new Bitmap(TWidth, THeight); Graphics g = Graphics.FromImage(tImage); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //设置高质量,低速度呈现平滑程度 g.Clear(Color.Transparent); //清空画布并以透明背景色填充 g.DrawImage(oImage, new Rectangle(0, 0, TWidth, THeight), new Rectangle(0, 0, owidth, oheight), GraphicsUnit.Pixel); Random oRandom = new Random(); string oStringRandom = oRandom.Next(9999).ToString();//生成4位随机数字 //格式化日期作为文件名 DateTime oDateTime = new DateTime(); oDateTime = DateTime.Now; string oStringTime = oDateTime.ToString("yyyyMMddHHmmss"); filename = ".jpg"; OFileName = "o" + oStringTime + oStringRandom + filename; TFileName = "t" + oStringTime + oStringRandom + filename; string oSavePath = HttpContext.Current.Server.MapPath("~") + @"\" + Path + @"\"; if (!Directory.Exists(oSavePath)) { Directory.CreateDirectory(oSavePath);//在根目录下建立文件夹 } //保存路径+完整文件名 OFullName = oSavePath + OFileName; //TFullName = oSavePath + TFileName; //开始保存图片至服务器 try { oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Jpeg); MSG = "图片上传成功!"; return(true); } catch (Exception ex) { throw ex; } finally { //释放资源 oImage.Dispose(); g.Dispose(); tImage.Dispose(); } } else { MSG = "请先选择需要上传的图片!"; return(false); } }
/// <summary> /// 图片上传(默认:"等比压缩,限定上传尺寸2048*1536,缩略图尺寸100*100,限定上传大小1MB,存放在根目录UpdateFile中") /// </summary> /// <param name="UploadFile">文件上传控件</param> /// <returns>返回是否成功保存图片</returns> public bool UpLoadIMG(FileUpload UploadFile) { if (UploadFile.HasFile)//检查是否已经选择文件 { string filename = System.IO.Path.GetFileName(UploadFile.FileName); filename = System.IO.Path.GetExtension(filename); if (!(filename == ".jpg" || filename == ".jpeg" || filename == ".bmp" || filename == ".gif" || filename == ".png")) { MSG = "不受支持的类型,请重新选择!"; return(false); }//检查上传文件的格式是否有效 if (UploadFile.PostedFile.ContentLength == 0 || UploadFile.PostedFile.ContentLength >= Size) { MSG = "指定的文件大小不符合要求,应在" + Size.ToString() + "字节以内!"; return(false); }//检查图片文件的大小 //生成原图 Stream oStream = UploadFile.PostedFile.InputStream; System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream); int owidth = oImage.Width; //原图宽度 int oheight = oImage.Height; //原图高度 if (owidth > LimitWidth || oheight > LimitHeight) { MSG = "超过允许的图片尺寸范围,应在" + LimitWidth.ToString() + "×" + LimitHeight.ToString() + "范围内!"; return(false); }//检查是否超出规定尺寸 Bitmap tImage = new Bitmap(TWidth, THeight); if (IsThumbnail) { tImage = ImageHelper.MakeThumbnail(oImage, TWidth, THeight, IsRate); } Random oRandom = new Random(); string oStringRandom = oRandom.Next(9999).ToString();//生成4位随机数字 //格式化日期作为文件名 DateTime oDateTime = new DateTime(); oDateTime = DateTime.Now; string oStringTime = oDateTime.ToString("yyyyMMddHHmmss"); OFileName = "o" + oStringTime + oStringRandom + filename; TFileName = "t" + oStringTime + oStringRandom + filename; string oSavePath = HttpContext.Current.Server.MapPath("~") + @"\" + Path + @"\"; if (!Directory.Exists(oSavePath)) { Directory.CreateDirectory(oSavePath);//在根目录下建立文件夹 } //保存路径+完整文件名 OFullName = oSavePath + OFileName; TFullName = oSavePath + TFileName; //开始保存图片至服务器 try { switch (filename) { case ".jpeg": case ".jpg": { oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Jpeg); if (IsThumbnail) { tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Jpeg); } break; } case ".gif": { oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Gif); if (IsThumbnail) { tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Gif); } break; } case ".png": { oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Png); if (IsThumbnail) { tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Png); } break; } case ".bmp": { oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Bmp); if (IsThumbnail) { tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Bmp); } break; } } MSG = "图片上传成功!"; return(true); } catch (Exception ex) { throw ex; } finally { //释放资源 oImage.Dispose(); tImage.Dispose(); } } else { MSG = "请先选择需要上传的图片!"; return(false); } }