zoukankan      html  css  js  c++  java
  • Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件

    (一). 示例图片

         

    (二). 示例代码

      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           }
        
  • 相关阅读:
    1046 Shortest Distance (20 分)(模拟)
    1004. Counting Leaves (30)PAT甲级真题(bfs,dfs,树的遍历,层序遍历)
    1041 Be Unique (20 分)(hash散列)
    1036 Boys vs Girls (25 分)(查找元素)
    1035 Password (20 分)(字符串处理)
    1044 Shopping in Mars (25 分)(二分查找)
    onenote使用小Tip总结^_^(不断更新中...)
    1048 Find Coins (25 分)(hash)
    三个故事
    领导者的举止
  • 原文地址:https://www.cnblogs.com/juan/p/1431049.html
Copyright © 2011-2022 走看看