2014.12.13 ASP.NET文件上传
一、文件上传:
(一)上传到硬盘文件夹
1.最简单的上传。
[HTML代码]
1 <asp:FileUpload ID="FileUpload1" runat="server" /> 2 <asp:Button ID="Button1" runat="server" Text="上传" />
[C#代码]
1 //把相对路径,变成绝对路径 2 string path = Server.MapPath("uploads/aaa.txt"); 3 //文件上传,注意的是:SaveAs里面的应当是绝对路径 4 FileUpload1.SaveAs(path);
2.上传文件保持原文件名:
1 //把上传文件原来的文件名给取出来。 2 string fileName = FileUpload1.FileName; 3 4 //把相对路径,变成绝对路径 5 string path = Server.MapPath("uploads/"+fileName); 6 7 //文件上传,注意的是:SaveAs里面的应当是绝对路径 8 FileUpload1.SaveAs(path);
3.防止上传文件重名而导致覆盖。
1 protected void Button1_Click(object sender, EventArgs e) 2 { 3 //把上传文件原来的文件名给取出来。 4 string fileName = FileUpload1.FileName; 5 6 //防止文件重名,而对文件名进行的处理。 7 fileName = Session["user"].ToString() + DateTime.Now.ToString("yyyyMMddhhmmssms") + fileName; 8 9 //把相对路径,变成绝对路径 10 string path = Server.MapPath("uploads/"+fileName); 11 12 //文件上传,注意的是:SaveAs里面的应当是绝对路径 13 FileUpload1.SaveAs(path); 14 }
4.同时上传多个文件。
1 protected void Button1_Click(object sender, EventArgs e) 2 { 3 int index = 0;//防止同一时间上传同一文件造成文件名重复,给上传顺序编号 4 //遍历from表单中每一个元素 5 foreach (Control ctrl in this.form1.Controls) 6 { 7 //取元素为FileUpload的元素 8 if (ctrl is FileUpload) 9 { 10 FileUpload file = (FileUpload)ctrl;//强转为FileUpload型 11 //判断是否有文件路径 12 if (file.HasFile) 13 { 14 string filename = file.FileName; 15 filename = Session["id"].ToString() + DateTime.Now.ToString("yyyyMMddhhmmssms") + index.ToString() + filename; 16 string path = Server.MapPath("Uploads/" + filename); 17 file.SaveAs(path); 18 index++; 19 } 20 } 21 } 22 Label1.Text = "上传成功!"; 23 }
注意:默认情况下,这种方式上传文件,最大是4M。可以修改,修改方法如下:
1.打开Web.Config
2.添加配置节:
1 <system.web> 2 <httpRuntime maxRequestLength="40960"/>