happyfish

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            38 Posts :: 1 Stories :: 62 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(5)

          隨筆分類(25)

          隨筆檔案(38)

          文章分類

          文章檔案(1)

          相冊

          收藏夾

          JAVA學(xué)習(xí)

          我常去的URL

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          上傳圖片并生成略縮圖
           

          參數(shù)說明
          FileBox:上傳表單中的表單名
          SavePath:保存路徑
          ThumbnailWidth:略縮圖寬
          ThumbnailHeight:略縮圖高
          FilePath:文件保存路徑(輸出參數(shù))
          FileName:文件名稱(輸出參數(shù))
          LastError:(輸出錯(cuò)誤)
          public static bool UploadImages(System.Web.UI.HtmlControls.HtmlInputFile FileBox,string SavePath,Int32 ThumbnailWidth,Int32 ThumbnailHeight,out String FilePath,out String FileName,out string LastError)
          {
          DateTime datTime=System.DateTime.Now;
          String strTemp;
          string strFileName = FileBox.PostedFile.FileName;
          bool blnResult;
          LastError="";
          System.Drawing.Image xImage;
          System.Drawing.Bitmap xBitmap;
          int PhotoHeight,PhotoWidth;
          string BasePath=System.Web.HttpContext.Current.Server.MapPath("../");
          Rectangle NewPhoto;
          System.Drawing.Imaging.ImageFormat xObject;
          string Extension="";
          FileName="";
          FilePath="";

          try
          {
          if(strFileName=="")
          {
          LastError="請點(diǎn)擊瀏覽選擇要上傳的文件!";
          return false;
          }
          if(Convert.ToDecimal(FileBox.PostedFile.ContentLength)<= 2000000 &&Convert.ToDecimal(FileBox.PostedFile.ContentLength)>1500)
          {
          //查看擴(kuò)展名是否合法
          Extension=Path.GetExtension(strFileName);
          Extension=Extension.ToLower();
          if(Extension==".gif" || Extension==".jpg" || Extension==".jpeg" || Extension==".bmp")
          {
          switch(Extension)
          {
          case ".gif":
          xObject=System.Drawing.Imaging.ImageFormat.Gif;
          break;
          case ".bmp":
          xObject=System.Drawing.Imaging.ImageFormat.Bmp;
          break;
          default:
          xObject=System.Drawing.Imaging.ImageFormat.Jpeg;

          break;
          }
          }
          else
          {
          LastError="上傳的文件不是有效的圖片文件,請上傳格式為:.gif.jpg.bmp的文件!";
          return false;
          }
          //-----------------------------
          //生成保存的文件路徑及文件名
          //-----------------------------
          strTemp = datTime.ToShortDateString().Replace( "-", "");
          FileName = datTime.ToLongTimeString().Replace(":","")+ Extension;
          FilePath = SavePath + strTemp + "/";
          Friendlib.Function.CreateDirectory(BasePath + FilePath);
          //保存大圖
          xImage=System.Drawing.Bitmap.FromStream(FileBox.PostedFile.InputStream);

          xImage.Save(BasePath+FilePath+FileName);
          xImage.Dispose();
          //-----------------------------
          //開始生成縮略圖
          //-----------------------------
          xBitmap=new Bitmap(BasePath+FilePath+FileName);//------------------

          PhotoHeight=xBitmap.Height;
          PhotoWidth=xBitmap.Width;
          // //判斷圖片的形狀
          if(Convert.ToDecimal(PhotoHeight)/Convert.ToDecimal(PhotoWidth)>Convert.ToDecimal(ThumbnailHeight)/Convert.ToDecimal(ThumbnailWidth))//高有余
          {
          PhotoHeight=Convert.ToInt16((Convert.ToDecimal(ThumbnailHeight)/Convert.ToDecimal(ThumbnailWidth))*Convert.ToDecimal(PhotoWidth));
          NewPhoto=new Rectangle(0,0,PhotoWidth,PhotoHeight);
          }
          else if(Convert.ToDecimal(PhotoHeight)/Convert.ToDecimal(PhotoWidth)<Convert.ToDecimal(ThumbnailHeight)/Convert.ToDecimal(ThumbnailWidth))
          {
          PhotoWidth=Convert.ToInt16((Convert.ToDecimal(ThumbnailWidth)/Convert.ToDecimal(ThumbnailHeight))*Convert.ToDecimal(PhotoHeight));
          NewPhoto=new
          Rectangle(Convert.ToInt16((Convert.ToDecimal(xBitmap.Width)-Convert.ToDecimal(PhotoWidth))/2),0,PhotoWidth,PhotoHeight);
          }
          else
          {
          NewPhoto= newRectangle(0,0,PhotoWidth,PhotoHeight); < BR> }
          System.Drawing.Image myBitmap;
          myBitmap=xBitmap.Clone(NewPhoto,System.Drawing.Imaging.PixelFormat.DontCare);
          System.Drawing.Image.GetThumbnailImageAbort myCallback = new
          System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
          System.Drawing.Image myThumbnail =
          myBitmap.GetThumbnailImage(ThumbnailWidth,ThumbnailHeight, myCallback,
          IntPtr.Zero); myThumbnail.Save(BasePath + FilePath +"s"+FileName,xObject);
          myThumbnail.Dispose(); myBitmap.Dispose(); xBitmap.Dispose(); return true; }
          else
          {
          blnResult=false; LastError="不能上傳大于2M及小于1.5K的圖片!";
          }
          }< BR> catch (Exception ex) {
          throw new System.Exception((ex.Message + ("\r\n" + ex.StackTrace)));
          }
          return blnResult;
          }
          private static bool ThumbnailCallback() { return false; }

          posted on 2005-05-11 10:34 小魚兒 閱讀(4151) 評論(8)  編輯  收藏 所屬分類: encoding

          Feedback

          # re: 上傳圖片并生成略縮圖 2006-02-22 14:48 dddffgg
          gfhgh  回復(fù)  更多評論
            

          # http://comic.qq.com/z/wenchuan/images/poster/feel001.jpg 2006-03-16 11:51 k
          hjgkjhg  回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2006-03-16 11:51 k
          tg  回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2006-06-16 13:18 sa
          您要上傳的圖片小于5K,請上傳足夠尺寸和清晰度的掃描件  回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2006-10-29 10:18 WFWEWE
          @sa
          EWFEWFEWF  回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2006-11-06 03:10 愛ぁ隨★云
          didfoh
            回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2006-11-06 03:17 愛ぁ隨★云
          454  回復(fù)  更多評論
            

          # re: 上傳圖片并生成略縮圖 2007-03-14 21:00 劉套
          好好的  回復(fù)  更多評論
            

          主站蜘蛛池模板: 遵义市| 鸡西市| 鲁山县| 神木县| 遵义市| 若羌县| 应用必备| 岳阳市| 上思县| 余姚市| 徐闻县| 台南市| 化德县| 广汉市| 大兴区| 疏附县| 北流市| 金湖县| 武乡县| 微山县| 阳高县| 神木县| 怀集县| 兰溪市| 轮台县| 湛江市| 东城区| 明光市| 勐海县| 绵阳市| 浦东新区| 什邡市| 靖边县| 慈溪市| 台山市| 刚察县| 资溪县| 五莲县| 彝良县| 乳山市| 东海县|