功能:  

  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();  


                  }