asp.net 2.0 批量上传

 
一个asp.net2.0批量上传程序!供大家学习!
<!:程序启动后界面:

<!:cs代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Data;
using System.Drawing;
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;

namespace _1aspxUploads
{

    public partial class _Default : System.Web.UI.Page
    {
        static public ArrayList hif = new ArrayList(); // 保存文件列表
        public int filesUploaded = 0; // 上传文件的数量

        protected void Page_Load(object sender, EventArgs e)
        {

        }
       /// <summary>
        /// 将要上传的文件添加到listbox中
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>

        protected void AddFile_Click(object sender, EventArgs e)
        {
            if (Page.IsPostBack == true)
            {
                hif.Add(FindFile);
                FileList.Items.Add(FindFile.PostedFile.FileName);
            }
            else
            { }

        }

        /// <summary>
        /// 从listbox中删除指定的文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void RemvFile_Click(object sender, EventArgs e)
        {
            if (FileList.SelectedIndex == -1)
            {
                TipInfo.Text = "错误 - 必须指定要删除的文件.";
                return;
            }
            else if (FileList.Items.Count != 0)
            {
                hif.RemoveAt(FileList.SelectedIndex);
                FileList.Items.Remove(FileList.SelectedItem.Text);
                TipInfo.Text = "";
            }          

        }

          /// <summary>
  /// 循环上传listbox中的文件到指定的文件夹下
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
        public void Upload_ServerClick(object sender, System.EventArgs e)
        {
            string baseLocation = Server.MapPath("UploadFiles/"); // 上传路径  
            string status = "";  // 上传成功后显示的文件列表        

            if ((FileList.Items.Count == 0) && (filesUploaded == 0))
            {
                TipInfo.Text = "错误 - 必须指定要上传的文件.";
                return;
            }
            else
            {
                foreach (System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
                {
                    try
                    {
                        string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
                        HIF.PostedFile.SaveAs(baseLocation + fn);
                        filesUploaded++;
                        status += fn + "<br>";
                    }
                    catch (Exception err)
                    {
                        TipInfo.Text = "上传错误 " + baseLocation
                         + "<br>" + err.ToString();
                    }
                }

                if (filesUploaded == hif.Count)
                {
                    TipInfo.Text = "共上传了 " + filesUploaded + " 个文件。 <br>" + status;
                }
                hif.Clear();
                FileList.Items.Clear();
            }

        }
    }
}
 

==============================================

asp.net中批量文件上传

2006-11-17 阅读: 770 298 出处: 作者: 编辑: 
 

1)代码示例

public 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 }

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

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

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

posted @ 2008-09-09 16:24  Chris Wei  阅读(1794)  评论(0)    收藏  举报