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           }
    103       }
    104       if (Session[“FilesControls“] != null)
    105       {
    106           Session.Remove(“FilesControls“);
    107       }
    108    }
    109}

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

           〈httpRuntime〉
                executionTimeout=“110“              //上传等待时间
                maxRequestLength=“4096“        //上传文件大小,默认为4M
           〈/httpRuntime〉

           上传文件大小是由上面两个参数所决定的.  涉及到安全因素,不要设得太大。
  • 相关阅读:
    第六章 装饰模式
    第二章 策略模式
    第一章 简单工厂模式
    HTTPS-post请求
    import&export
    Flask(Jinja2) 服务端模板注入漏洞vulhub
    MySQL UDF提权 过程及注意事项
    centos7 安装jdk1.8.0_271 以及错误解决
    WEB、FTP服务器所有响应码解释(超详细)
    Wolf CMS后台文件上传getshell并提权
  • 原文地址:https://www.cnblogs.com/juan/p/1428870.html
Copyright © 2011-2022 走看看