//定义image类的对象
System.Drawing.Image image,newimage;
//图片路径
protected string imagePath;
//图片类型
protected string imageType;
//图片名称
protected string imageName;
//提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
//如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
System.Drawing.Image.GetThumbnailImageAbort callb = null;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnUp.Click += new System.EventHandler(this.btnUp_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnUp_Click(object sender, System.EventArgs e)
{
string mPath;
if("" != upImage.PostedFile.FileName)
{
imagePath= upImage.PostedFile.FileName;
//取得图片类型
imageType= imagePath.Substring(imagePath.LastIndexOf(".")+1);
//取得图片名称
imageName = imagePath.Substring(imagePath.LastIndexOf("//")+1);
//判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
if("jpg" != imageType && "gif" != imageType)
{
Response.Write("<script language='javascript'> alert('对不起!请您选择jpg或者gif格式的图片!');</script>");
return;
}
else
{
try
{
float oldW,oldH,newW,newH;
//建立虚拟路径
mPath=Server.MapPath("upFile");
//保存到虚拟路径
upImage.PostedFile.SaveAs(mPath+"//"+imageName);
//显示原图
imageSource.ImageUrl = "upFile/"+imageName;
//为上传的图片建立引用
image=System.Drawing.Image.FromFile(mPath+"//"+imageName);
oldW=image.Width;
oldH=image.Height;
if (oldW>oldH)
{
newW=100;
newH=oldH/oldW*newW;
}
else
{
newH=100;
newW=oldW/oldH*newH;
}
//生成缩略图
newimage=image.GetThumbnailImage((int)newW,(int)newH,callb,new System.IntPtr());
//把缩略图保存到指定的虚拟路径
newimage.Save(Server.MapPath("upFile")+"//small"+imageName);
//释放image对象占用的资源
image.Dispose();
//释放newimage对象的资源
newimage.Dispose();
//显示缩略图
imageSmall.ImageUrl = "upFile/"+"small"+imageName;
//Response.Write("上传成功!");
}
catch(Exception error)
{
Response.Write(error.ToString());
}