Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)

转载 2006年05月27日 20:34:00

学习, And 整理了一下.

(一). 示例图片

     

(二). 示例代码

 

  1public partial class UpMultiFileControl2 : System.Web.UI.UserControl
  2{
  3    protected void Page_Load(object sender, EventArgs e)
  4    {
  5        if (!Page.IsPostBack)
  6        {
  7            SaveCurrentPageFileControls();
  8        }

  9    }

 10    protected void btAddFile_Click(object sender, EventArgs e)
 11    {
 12        AddOneFileControl();
 13    }

 14
 15    /// <summary>
 16    /// 添加一个上传文件控件
 17    /// </summary>

 18    private void AddOneFileControl()
 19    {
 20        ArrayList al = new ArrayList();
 21        this.tbFiles.Rows.Clear();
 22        GetFileControlsFromSession();        
 23        HtmlTableRow htr = new HtmlTableRow();
 24        HtmlTableCell htc = new HtmlTableCell();        
 25        htc.Controls.Add(new FileUpload());
 26        htr.Controls.Add(htc);
 27        this.tbFiles.Rows.Add(htr);
 28        SaveCurrentPageFileControls();
 29    }

 30
 31    /// <summary>
 32    /// 读取缓存中存储的上传文件控件集
 33    /// </summary>

 34    private void GetFileControlsFromSession()
 35    {
 36        ArrayList al = new ArrayList();       
 37        if (Session["FilesControls"!= null)
 38        {
 39            al = (System.Collections.ArrayList)Session["FilesControls"];
 40            for (int i = 0; i < al.Count; i++)
 41            {
 42                HtmlTableRow htr1 = new HtmlTableRow();                
 43                HtmlTableCell htc1 = new HtmlTableCell();
 44                htc1.Controls.Add((System.Web.UI.WebControls.FileUpload)al[i]);
 45                htr1.Controls.Add(htc1);
 46                this.tbFiles.Rows.Add(htr1);
 47            }

 48        }

 49    }

 50    
 51    /// <summary>
 52    /// 保存当前页面上传文件控件集到缓存中
 53    /// </summary>    

 54    private void SaveCurrentPageFileControls()
 55    {        
 56        ArrayList al = new ArrayList();        
 57        foreach (Control controlTR in this.tbFiles.Controls)
 58        {
 59            if (controlTR.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")
 60            {
 61                HtmlTableCell htc = (HtmlTableCell)controlTR.Controls[0];
 62                foreach (Control controlFileUpload in htc.Controls)
 63                {
 64                    if (controlFileUpload.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")
 65                    {
 66                        FileUpload tempFileUpload = (FileUpload)controlFileUpload;
 67                        al.Add(tempFileUpload);
 68                    }

 69                }

 70            }
            
 71        }
  
 72        Session.Add("FilesControls", al);
 73    }

 74
 75    protected void btUpFiles_Click(object sender, EventArgs e)
 76    {
 77        UpLoadFiles();
 78    }

 79
 80    /// <summary>
 81    /// 上传文件操作
 82    /// </summary>

 83    private void UpLoadFiles()
 84    {
 85        string filepath = Server.MapPath("./")+"UploadFiles";
 86        
 87        HttpFileCollection uploadedFiles = Request.Files;       
 88        for (int i = 0; i < uploadedFiles.Count; i++)
 89        {    
 90           HttpPostedFile userPostedFile = uploadedFiles[i];        
 91           try
 92           {    
 93              if (userPostedFile.ContentLength > 0 )
 94              {  
 95                 userPostedFile.SaveAs(filepath + "//" + System.IO.Path.GetFileName(userPostedFile.FileName));
 96                 Response.Write("已上传文件: /"" + filepath +"//"+ userPostedFile.FileName +"/"<br><br>" );                                   
 97              }
    
 98           }
 
 99           catch
100           {
101               Response.Write("上传文件: /"" + userPostedFile.FileName +"/"出错!");
102           }
    
103       }

104       if (Session["FilesControls"!= null)
105       {
106           Session.Remove("FilesControls");
107       }

108    }
    
109}

 

(三). 改变上传文件大小和时间限制

       <httpRuntime>
            executionTimeout="110"              //允许上传文件最大等待时间
            maxRequestLength="4096"        //上传文件大小,默认为4M
       </httpRuntime>

       上传文件大小是由上面两个参数所决定的.  涉及到安全因素,最好不要设得太大.      

(四). 示例源代码下载

       http://www.cnblogs.com/Files/ChengKing/UpMultiFileControl.rar

相关文章推荐

用ASP.NET的FileUpload控件实现带对话框的FTP文件上传功能

最近不得已开始做网页,一个ASP.NET的项目,需要实现FTP上传功能,于是上网广搜代码,发现FTP上传的代码到处都是,随手拈来,可是一般来说客户端上传文件都需要一个对话框,正好自带的FileUplo...

ASP.NET控件FileUpload实现Excel文件内容上传到数据库

实现思路:Excel的内容并不可以直接上传到数据库,所以先将Excel内容读取出来转化为DataSet,然后可以得到DataTable,遍历每一行,存到数据库里就好了。 前台只放了两个控件: ...

ASP.NET MVC 重点教程一周年版 第十一回 母版页、用户自定义控件及文件上传

母版页(Master) 1.母版页是与Controller无关的,母版页只是一个View文件,而没有任何Controller与之相对应。 2.其实在ASP.NET MVC中View的asp...

ASP.NET MVC 重点教程一周年版 第十一回 母版页、用户自定义控件及文件上传

母版页(Master) 1.母版页是与Controller无关的,母版页只是一个View文件,而没有任何Controller与之相对应。 2.其实在ASP.NET MVC中View的aspx与母版...

asp.net 使用纯jquery上传控件 fineuploader实现多文件上传

做的一个asp.net项目系统中需要用到多文件上传的功能,但是原生的FileUploader不支持一次选择多个文件上传,用户要求一次性选择多个文件一次性批量上传。于是乎在网上找了好多所谓多文件上传的控...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)