博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net中实现文件批量上传
阅读量:6639 次
发布时间:2019-06-25

本文共 4551 字,大约阅读时间需要 15 分钟。

今天BOSS要求做一个批量上传文件的功能,忙活了半天,总算搞定,希望前辈们多加指点,下面来看一下效果图(这里是简化版,只介绍了主要实现过程,没有美化,勿怪!勿怪!):

单击添加文件,将自动添加FileUpload控件。

单击浏览分别选择要上传的多个文件

单击上传文件,完成文件的上传。

好了不多说,下面是代码:

前台Default.aspx代码

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>    批量上传文件    
批量上传文件

Default.aspx.cs代码(注释有一定说明,都能看懂吧?)

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections;//引入命名空间public partial class _Default : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)//首次执行页面        {            SFUPC();        }    }    #region  该方法用于将当前页面上传文件控件集保存到Session中    private void SFUPC()    {        ArrayList AL = new ArrayList();//动态增加数组        foreach (Control C in Tab_UpDownFile.Controls)        {            //在表格中查找出FileUpload控件添加到ArrayList中            if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")            {                HtmlTableCell HTC = (HtmlTableCell)C.Controls[0];                foreach (Control FUC in HTC.Controls)                {                    if (FUC.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")                    {                        FileUpload FU = (FileUpload)FUC;                        //设置FileUpload的样式                        FU.BorderColor = System.Drawing.Color.DimGray;                        FU.BorderWidth = 1;                        //添加FileUpload控件                        AL.Add(FU);                    }                }            }        }        //把ArrayList添加到Session中        Session.Add("FilesControls", AL);    }    #endregion    #region 该方法用于添加一个上传文件的控件    private void InsertC()    {        //实例化ArrayList        ArrayList AL = new ArrayList();        this.Tab_UpDownFile.Rows.Clear(); //清除id为F表格里的所有行        GetInfo();        //表示 HtmlTable 控件中的  HTML 元素        HtmlTableRow HTR = new HtmlTableRow();        //表示 HtmlTableRow 对象中的  和  HTML 元素        HtmlTableCell HTC = new HtmlTableCell();        //在单元格中添加一个FileUpload控件        HTC.Controls.Add(new FileUpload());        //在行中添加单元格        HTR.Controls.Add(HTC);        //在表中添加行        Tab_UpDownFile.Rows.Add(HTR);        SFUPC();    }    #endregion    #region 该方法用于将保存在Session中的上传文件控件集添加到表格中    private void GetInfo()    {        ArrayList AL = new ArrayList();        if (Session["FilesControls"] != null)        {            AL = (ArrayList)Session["FilesControls"];            for (int i = 0; i < AL.Count; i++)            {                HtmlTableRow HTR = new HtmlTableRow();                HtmlTableCell HTC = new HtmlTableCell();                HTC.Controls.Add((System.Web.UI.WebControls.FileUpload)AL[i]);                HTR.Controls.Add(HTC);                Tab_UpDownFile.Rows.Add(HTR);            }        }    }    #endregion    #region 该方法用于执行文件上传操作    private void UpFile()    {        //获取文件夹路径        string FilePath = Server.MapPath("./") + "File";        // 获取客户端上载文件的集合        HttpFileCollection HFC = Request.Files;        for (int i = 0; i < HFC.Count; i++)        {            //访问指定的文件            HttpPostedFile UserHPF = HFC[i];            try            {                //判断文件是否为空                if (UserHPF.ContentLength > 0)                {                    //将上传的文件存储在指定目录下                    UserHPF.SaveAs(FilePath + "\\" + System.IO.Path.GetFileName(UserHPF.FileName));                }            }            catch            {                LblMessage.Text = "上传失败!";            }        }        if (Session["FilesControls"] != null)        {            Session.Remove("FilesControls");        }        LblMessage.Text = "上传成功!";    }    #endregion    #region 调用InsertC方法,实现添加FileUpLoad控件的功能    protected void BtnAdd_Click(object sender, EventArgs e)    {        InsertC();//执行添加控件方法        LblMessage.Text = "";    }    #endregion    #region 实现文件上传的功能    protected void BtnUpFile_Click(object sender, EventArgs e)    {        if (this.FileUpload1.PostedFile.FileName != "")        {            UpFile();//执行上传文件            SFUPC();        }        else        {             LblMessage.Text = "对不起,上传文件为空,请选择上传文件!";        }    }    #endregion}

转载地址:http://rjovo.baihongyu.com/

你可能感兴趣的文章
【HDOJ】3234 Exclusive-OR
查看>>
vue 点击图片显示大图
查看>>
Hadoop基础-Protocol Buffers串行化与反串行化
查看>>
Hadoop生态圈-phoenix(HBase)的索引配置
查看>>
LitJson使用方法
查看>>
Windows 7上安装配置TensorFlow-GPU运算环境
查看>>
【VS2013编译DirectX Tutorials时遇到的错误】FXC : error X3501: 'main': entrypoint not found
查看>>
npm上传vue组件
查看>>
在网页内预览pdf
查看>>
加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序...
查看>>
WebGL学习笔记四点一
查看>>
java-switch语句
查看>>
[Android Security] APK自我保护 - DEX/APK校验
查看>>
[web前端] yarn和npm命令使用
查看>>
Minimum Expression of String 字符串最小表示
查看>>
國王遊戲(2012年NOIP全国联赛提高组)
查看>>
谈谈 ES6 的 Promise 对象
查看>>
PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
查看>>
创业者要有杀手气质和传教士能力
查看>>
Eclipse报错Resource '/.org.eclipse.jdt.core.external.folders/.link5' already exists.
查看>>