上傳縮小圖片

功能:  
  1。把图片文件(JPG   GIF   PNG)上传,  
  2。保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),  
  3。并自动生成指定宽度的(在web.config中设置宽度)  
  4。和指定格式的(在web.config中指定缩略图的格式)  
  5。和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)  
  6。可以判断是否已经存在文件  
  7。如果不覆盖,则给出错误  
  8。如果选中"覆盖原图"checkbox,则覆盖原图。  
  9。可以根据要求,在webform上设置1个以上的file   input和相应的checkbox  
  10。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和  
  11。缩略图的文件名尺寸。  
  12。缩略图的文件名格式:原图+"_thumb."+指定格式,如:test.jpg_thumb.gif,以便于管理。  
   
  --------------------  
  public   void   UploadFile(object   sender,   System.EventArgs   e)  
                  {  
                           
                                  string   imgNameOnly,   imgNameNoExt,   imgExt;  
                                  string   imgThumbnail;  
                                  int   erroNumber   =   0;  
                                  System.Drawing.Image   oriImg,   newImg;  
                                  string   strFePicSavePath   =   ConfigurationSettings.AppSettings["FePicSavePath"].ToString();  
                                  string   strFePicThumbFormat   =   ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();  
                                  int   intFeThumbWidth   =   Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);  
                                  string   fileExt;  
   
                                  StringBuilder   picInfo   =   new   StringBuilder();  
                           
                          if(Page.IsValid)  
                          {  
                           
   
                                  for(int   i   =   0;i   <   Request.Files.Count;   i++)  
                                  {  
                                          HttpPostedFile   PostedFile   =   Request.Files[i];//上传多个文件  
                                          fileExt   =   (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();//获取文件扩展名,并转化为小写格式    
                                                     
                                          imgNameOnly   =   System.IO.Path.GetFileName(PostedFile.FileName);//获取图片文件名  
                                          if(fileExt   ==   ".jpg"   ||   fileExt   ==   ".gif"   ||   fileExt   ==   ".png")  
                                          {  
   
                                                  if(System.IO.File.Exists(strFePicSavePath   +   imgNameOnly)   &&   (checkboxlistRewrite.Items[i].Selected   ==   false))//所选的文件已经存在  
                                                  {  
                                                          erroNumber   =   erroNumber   +   1;  
                                                          picInfo.Append("<b>错误:</b>文件("+   (i+1)   +")   "   +   imgNameOnly   +   "   已经存在,请修改文件名<br>"   );  
                                                  }  
                                          }  
                                          else  
                                          {  
                                                  erroNumber   =   erroNumber   +   1;  
                                                  picInfo.Append("<b>错误:</b>文件("+   (i+1)   +")   "   +   imgNameOnly   +   "   扩展名   "   +   fileExt   +   "   不被许可<br>"   );  
                                          }                                  
   
                                  }  
   
                                  if(erroNumber   >   0)    
                                  {  
                                          picInfo.Append("<font   color=red>全部操作均未完成,请修改错误,再进行操作</font><br>");  
                                  }  
                                  else                          
                                  {  
                                          for(int   i   =   0;i   <   Request.Files.Count;   i++)  
                                          {  
                                   
                                                  HttpPostedFile   PostedFile   =   Request.Files[i];  
                                                  imgNameOnly   =   System.IO.Path.GetFileName(PostedFile.FileName);  
                                                  imgNameNoExt   =   System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);  
                                                  imgExt   =   System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();  
                                           
                                           
                                                  oriImg   =   System.Drawing.Image.FromStream(PostedFile.InputStream);//上传图片  
                                                  newImg   =   oriImg.GetThumbnailImage(intFeThumbWidth,   intFeThumbWidth   *   oriImg.Height/oriImg.Width,null,new   System.IntPtr(0));  
                                                  switch(imgExt)  
                                                  {  
                                                          //case   ".jpeg":  
                                                          case   ".jpg":  
                                                                  oriImg.Save(strFePicSavePath   +   imgNameOnly   ,   System.Drawing.Imaging.ImageFormat.Jpeg);  
                                                                  break;  
                                                          case   ".gif":  
                                                                  oriImg.Save(strFePicSavePath   +   imgNameOnly   ,   System.Drawing.Imaging.ImageFormat.Gif);  
                                                                  break;  
                                                          case   ".png":  
                                                                  oriImg.Save(strFePicSavePath   +   imgNameOnly   ,   System.Drawing.Imaging.ImageFormat.Png);  
                                                                  break;  
                                                  }  
                                                   
                                                  //oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"]   +   imgNameNoExt   +   ".jpg",   System.Drawing.Imaging.ImageFormat.Jpeg);  
                                                                                   
                                                  switch(strFePicThumbFormat)  
                                                  {  
                                                                  //jpeg   format   can   get   the   smallest   file   size,   and   the   png   is   the   largest   size  
                                                          //case   "jpeg":  
                                                          case   "jpg":  
                                                                  newImg.Save(strFePicSavePath   +   imgNameOnly   +   "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);  
                                                                  imgThumbnail   =   imgNameOnly   +   "_thumb.jpg";  
                                                                  break;  
                                                          case   "gif":  
                                                                  newImg.Save(strFePicSavePath   +   imgNameOnly   +   "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);  
                                                                  imgThumbnail   =   imgNameOnly   +   "_thumb.gif";  
                                                                  break;  
                                                          case   "png":  
                                                                  newImg.Save(strFePicSavePath   +   imgNameOnly   +   "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);  
                                                                  imgThumbnail   =   imgNameOnly   +   "_thumb.png";  
                                                                  break;  
                                                          default:  
                                                                  newImg.Save(strFePicSavePath   +   imgNameOnly   +   "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);  
                                                                  imgThumbnail   =   imgNameOnly   +   "_thumb.jpg";                                                  
                                                                  break;  
                                           
                                                  }//switch  
                                                   
                                                  picInfo.Append("<b>文件 名:</b>"   +   imgNameOnly   +   "   (   "   +   oriImg.Width   +   "   x   "   +   oriImg.Height   +   "   )   "   +   PostedFile.ContentLength/1024   +   "KB<br>");  
                                                  picInfo.Append("<b>缩略图名:</b>"   +   imgThumbnail   +   "   (   "   +   newImg.Width   +   "   x   "   +   newImg.Height   +   "   )<br><br>");  
                                           
                                                  oriImg.Dispose();  
                                                  newImg.Dispose();                                  
                                           
                                          }//for    
                                          picInfo.Append("<font   color=red>所有操作成功</font><br>");  
   
                                  }//   if   erronumber   =   0  
   
                           
                                   
                          }  
                          else  
                          {  
                                  picInfo.Append("<font   color=red>有错误,请检查。操作未成功</font><br>");  
   
                          }  
   
                          lblPicInfo.Text   =   picInfo.ToString();  
   
                  }
posted @ 2008-05-19 17:10  Nina  阅读(1582)  评论(1编辑  收藏  举报