private void Upload_Click(object sender, System.EventArgs e) { if(myFile.PostedFile !=null) { // 检查文件扩展名字 HttpFileCollection files = HttpContext.Current.Request.Files; HttpPostedFile postedFile = files[0]; string fileName,fileExtension,file_id,file_path;
//取出精确到毫秒的时间做文件的名称 int year = System.DateTime.Now.Year; int month = System.DateTime.Now.Month; int day = System.DateTime.Now.Day; int hour = System.DateTime.Now.Hour; int minute = System.DateTime.Now.Minute; int second = System.DateTime.Now.Second; int millisecond = System.DateTime.Now.Millisecond; string my_file_id = year.ToString() + month.ToString() + day.ToString() + hour.ToString() + minute.ToString() + second.ToString() + millisecond.ToString();
//获得文件类型 fileName = System.IO.Path.GetFileName(postedFile.FileName); fileExtension = System.IO.Path.GetExtension(fileName);
//重新命名文件,防止重复 file_id = "topnews_"+my_file_id+fileExtension; file_path = "images/article_images/"+file_id;
//文件上传到服务器的根目录 postedFile.SaveAs(Request.PhysicalApplicationPath+@"images/article_images/"+ file_id);
//处理图片大小 int width,height,level; width=120; height=90; level=100;//从1-100 GetThumbnailImage(width,height,level,file_id); } }
//生成缩略图函数 public void GetThumbnailImage(int width,int height,int level,string file_id) { string newfile= Request.PhysicalApplicationPath+"images/article_images/"+"top_"+ file_id; System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"images/article_images/"+ file_id); System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero); Bitmap output=new Bitmap(thumbnailImage);
//处理JPG质量的函数 ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici=null; foreach(ImageCodecInfo codec in codecs){if(codec.MimeType=="image/jpeg")ici=codec;} EncoderParameters ep=new EncoderParameters(); ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)level); output.Save(newfile,ici,ep);
//释放所有使用对象 ep.Dispose(); output.Dispose(); oldimage.Dispose(); thumbnailImage.Dispose();
//删除源图片 string file_path = "images/article_images/"+"top_"+file_id; usageIO.DeletePath(Request.PhysicalApplicationPath+"images/article_images/"+ file_id); Response.Write("<script >parent.Form1.A_Simg.value ='"+file_path+"';location.replace('Upload_Img.aspx')</script>"); }
bool ThumbnailCallback() { return false; }
