FileUpload
1、上传到硬盘文件夹
1、最简单的上传
HTML代码
<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" />
C#代码
protected void Button1_Click(object sender, EventArgs e) { //把上传文件原来的文件名给取出来。 string fileName = FileUpload1.FileName; //文件上传,注意的是:SaveAs里面的应当是绝对路径 FileUpload1.SaveAs(path); }
2、上传文件,并保存原文件名
protected void Button1_Click(object sender, EventArgs e) { //把上传文件原来的文件名给取出来。 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 = 0; foreach (Control ctrl in this.form1.Controls) { if (ctrl is FileUpload) //判断控件是否是文件上传控件 { FileUpload file = (FileUpload)ctrl; if (file.HasFile) //判断文件上传控件是否选中文件 { string fileName = file.FileName; fileName = Session["user"].ToString() + DateTime.Now.ToString("yyyyMMddhhmmssms")+ index.ToString() + fileName; string path = Server.MapPath("uploads/"+fileName); file.SaveAs(path); index++; } } } }
注意:该控件默认一次上传文件上限为4M。如果需要修改,修改Web.config中配置如下:
<system.web>
<httpRuntime maxRequestLength="40960"/> <!--文件上限更改为40M-->
</system.web>
2、上传到数据库
protected void Button1_Click(object sender, EventArgs e) { //从界面中获取数据 string name = FileUpload1.FileName; //获取文件名 byte[] content = FileUpload1.FileBytes; //获取文件内容,并转成二进制数组 //向数据库中插入记录 Documents data = new Documents(); data.Name = name; data.Content = content; _Context.Documents.InsertOnSubmit(data); _Context.SubmitChanges(); }