当前位置:编程学习 > ASP.NET> 正文

ASP.NET实现多文件上传

时间:2014-7-11类别:编程学习

ASP.NET实现多文件上传

ASP.NET实现多文件上传

一、固定数量的多文件上传

 

界面

 

上传的实现代码

  •  
  • C# 代码   复制
  • 
        //单击执行多文件上传
        protected void btnFileUpload_Click(object sender, EventArgs e)
        {
            //判断是否存在上传文件
            /*bool flag = false; ;
            bool[] b = { FileUpload1.HasFile, FileUpload2.HasFile, FileUpload3.HasFile };
            foreach (bool item in b)
            {
                if (item)
                {
                    flag = true;
                }
            }*/
    
            //判断是否存在上传文件
            if (!FileUpload1.HasFile && !FileUpload2.HasFile && !FileUpload3.HasFile)
            {
                lblMessage.Text = "至少选择一个上传的文件!";
            }
            else
            {
                /*提供对客户端上载文件的访问,并组织这些文件,它是一个文件的集合.
                Request.Files获取客户端上载文件的集合*/
                HttpFileCollection filecoll = Request.Files;
    
                //循环上传文件的集合,并上传每一个文件
                for (int i = 0; i < filecoll.Count; i++)
                {
                    /*得到上传的单个文件,
                     * 通过HttpPostedFile实例来处理单个上传文件的访问*/
                    HttpPostedFile myfile = filecoll[i];
    
                    //得到上传文件大小判断文件是否存在
                    if (myfile.ContentLength > 0)
                    {
                        if (myfile.ContentLength < 10485760)
                        {
                            try
                            {
                                //得到上传的文件名
                                myfile.SaveAs(Page.MapPath("~/Files/") + 
                                myfile.FileName.Substring(myfile.FileName.LastIndexOf(@"\\") + 1));
                                
                                //这里得到上传文件名的方式还可以是:
                                /* myfile.SaveAs(Page.MapPath("~/Files/") 
                                + System.IO.Path.GetFileName(myfile.FileName));*/
    
                                lblMessage.Text = "文件上传成功!";
                            }
                            catch (Exception)
                            {
                                lblMessage.Text = "上传文件发生错误!";
                            }
                        }
                        else
                        {
                            lblMessage.Text = "上传文件不能大于10MB";
                        }
                    }
                }
            }
        }
    
    		
  •  

     

    二、动态的添加多文件上传:

     

    界面

     

    前端代码

  •  
  • HTML 代码   复制
  • 
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiFileUpload.aspx。cs"
      Inherits="MultiFileUpload" %>
    
    <!DOCTYPE>
    <html>
    <head runat="server">
      <title>多文件上传测试</title>
    
      <script type="text/javascript">
        function addFile() {
          var li = document.createElement("li");
          var f = document.createElement("input");
          f.setAttribute("type", "file")
          f.setAttribute("name", "File")
          f.setAttribute("size", "50")
          li.appendChild(f)
          var d = document.createElement("input");
          d.setAttribute("type", "button")
          d.setAttribute("onclick", "deteFile(this)");
          d.setAttribute("value", "移除")
          li.appendChild(d)
          document.getElementById("_container").appendChild(li);
        }
    
        function deteFile(o) {
          while (o.tagName != "li") o = o.parentNode;
          o.parentNode.removeChild(o);
        }
      </script>
    
    </head>
    <body>
      <form id="form1" runat="server" method="post" enctype="multipart/form-data">
      <h3>多文件上传</h3>
       用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
      <li id="_container">
        <input type="file" size="50" name="File" />
      </li>
      <li>
        <input type="button" value="添加文件(Add)" onclick="addFile()" />
      </li>
      <li style="padding:10px 0">
        <asp:Button runat="server" Text="开始上传" ID="UploadButton" 
          onclick="UploadButton_Click"></asp:Button>
      </li>
      <li>
        <asp:Label ID="strStatus" runat="server" Font-Names="宋体" Font-Bold="True" Font-Size="9pt"
          Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>
      </li>
      </form>
    </body>
    </html>
    
    		
  •  

    后台代码

  •  
  • C# 代码   复制
  • 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class MultiFileUpload : System.Web.UI.Page
    {
        protected void UploadButton_Click(object sender, EventArgs e)
        {
          ///'遍历File表单元素
          HttpFileCollection files = HttpContext.Current.Request.Files;
    
          /// '状态信息
          System.Text.StringBuilder strMsg = new System.Text.StringBuilder("您输入的用户名是:" + TextBox1.Text + "<br/>");
          strMsg.Append("上传的文件分别是:<hr color='red'/>");
          try
          {
            for (int iFile = 0; iFile < files.Count; iFile++)
            {
              标签:
  • 上一篇下一篇

    猜您喜欢

    热门推荐