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"/>
原文地址:https://www.cnblogs.com/zsmj001/p/4163010.html