Пример #1
0
        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);
            }
        }
Пример #2
0
        /// <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);
            }
        }