{
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;
}