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