标准控件(三)——FileUpload

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();
    }

 

原文地址:https://www.cnblogs.com/phantom-k/p/4297796.html