文件上传及图片处理
{ try { file.SaveAs(pfilename); } catch (Exception ex) { lbMessage.Text = ex.Message; } lbMessage.Text = "上传文件" + vfilename + "到" + pfilename + "成功"; }
祥见附页
5、 实验总结 熟练掌握了怎么编写以及图片的简单处理方式。
参考文件的使用:文件夹experiment6和 实验6 文件管理.ppt可 作为理解文件上传的例子参考,同学们可运行实验代码并从中 理解程序运行实质,在此基础上做下述的实验例子。 实验步骤 1、 新建一个页Байду номын сангаас,在页面中添加一个FileUpload控件、 一个Button控件和一个Label控件,对应ID为fuFile、 btnupload、lbMessage,为btnupload控件添加Click事 件,如下:
}
测试结果如下:
肇庆学院计算机学院 动态网站开发 实验报告
实验名 称 班 级 姓 日 实验地 点 一、实验目的: 掌握文件上传代码的编写以及图片的简单处理方式。 此教学较为简单,只要掌握该类的使用方法便可以实现相 应功能。 二、实验环境: Windows 系列操作系统的计算机,软件visual 2010。 三、实验内容、步骤、实验结果与分析: studio 文件上传及图片处理 名 期 学 号 成 绩
protected void Page_Load(object sender, EventArgs e) { Picture p = new Picture(); string path = Server.MapPath("~/files/2.ico"); string stpath = Server.MapPath("~/files/2.jpeg"); p.MakeThumbImage(path, stpath, 10, 10, "HW"); Response.Write("成¨¦功|!ê?");
public class Picture { public Picture() { // // TODO: 在此处添加构造函数逻辑 // } public void MakeThumbImage(string path, string stpath, int width, int height, string mode) { System.Drawing.Image image = System.Drawing.Image.FromFile(path); int tw = width; int th = height; int sw = image.Width; int sh = image.Height; int x = 0, y = 0; switch (mode) { case "HW": ///指定高宽缩放 break; case "W": th = image.Height * width / image.Width; break; case "H": tw = image.Width * height / image.Height; break;
catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); return; } finally { image.Dispose(); bitmap.Dispose(); g.Dispose(); } } }
注意事项 在网络课程开发过种肯定要遇到的问题就是文件上传及管 理,这是一个在非常关键的一项技术,所以要不断的丰富自己 的类库,以方便以后的开发。 4、 新建一个页面,在页面中添加一个FileUpload控件、 一个Button控件和一个Label控件,对应ID为fuFile、 btnupload、lbMessage,为btnupload控件添加Click事 件。 5、 测试时要注意上传的目录已经建好,即网站目录下应 该有一个“files”的文件夹。 6、 下面是一个创建缩略图的方法,编写完此方法后,自 行编写一个测试页面进行测试。 Page_Load页面代码如下:
2、 测试时要注意上传的目录已经建好,即网站目录下应 该有一个“files”的文件夹。
测试界面:
点击“选择文件”,然后选择一个文件,选好后,点击“上传 文件到当前文件夹”。
随便输入一个留言人,如:123,然后输入一下内容,点 击“发表留言”就可以留言了。
3、 下面是一个创建缩略图的方法,编写完此方法后,自 行编写一个测试页面进行测试。
case "CUT": if ((double)tw / (double)th < (double)width / (double)height) { sw = image.Width; sh = image.Width * height / tw; x = 0; y = (image.Height - sh) / 2; } else { sh = image.Height; sw = image.Height * tw / th; y = 0; x = (image.Width - sw) / 2; } break; default: break; } System.Drawing.Image bitmap = new System.Drawing.Bitmap(tw, th); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.Clear(System.Drawing.Color.Transparent); g.DrawImage(image,new System.Drawing.Rectangle(0,0,tw,th),new System.Drawing.Rectangle(x,y,sw,sh),System.Drawing.GraphicsUnit.Pixel); try { bitmap.Save(stpath, System.Drawing.Imaging.ImageFormat.Jpeg); }
if (fuFile.HasFile == false) { lbMessage.Text = "上传的文件不存在"; return; } HttpPostedFile file = fuFile.PostedFile; if (file.ContentLength <= 0) { lbMessage.Text = "上传的文件的内容为空,不能上 传"; return; } string vfilename = System.IO.Path.GetFileName(file.FileName); string pfilename = Server.MapPath("Files/" + vfilename); if (System.IO.File.Exists(pfilename) == false)