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           }
        
  • 相关阅读:
    Mac OS X各版本号的历史费用和升级关系
    Openlayers2中统计图的实现
    CentOS下Redisserver安装配置
    最小生成树算法
    机器学习---支持向量机(SVM)
    Android HttpURLConnection源代码分析
    Lighttpd1.4.20源代码分析 笔记 状态机之错误处理和连接关闭
    <html>
    【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
    软件开发中的11个系统思维定律
  • 原文地址:https://www.cnblogs.com/juan/p/1431049.html
Copyright © 2011-2022 走看看