| 
                         在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下: 
  MultiUpload.aspx 
  <%@ Page Language="vb" AutoEventWireup="false" Codebehind="MultiUpload.aspx.vb"   Inherits="aspxWeb.MultiUpload" %>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  <HTML>    <HEAD>      <title>多文件上传</title>      <script language="JavaScript">      function addFile()      {          var str = '<INPUT type="file" size="50" NAME="File">'          document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)      }      </script>    </HEAD>    <body>      <form id="form1" method="post" runat="server" enctype="multipart/form-data">        <center>          <asp:Label Runat="server" ID="MyTitle"></asp:Label>          <P id="MyFile"><INPUT type="file" size="50" NAME="File"></P>          <P>            <input type="button" value="增加(Add)" onclick="addFile()">            <asp:Button Runat="server" Text="上传" ID="Upload"></asp:Button>            <input onclick="this.form.reset()" type="button" value="重置(ReSet)">          </P>        </center>        <P align="center">          <asp:Label id="strStatus" runat="server" Font-Names="宋体" Font-Bold="True"           Font-Size="9pt" Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>        </P>      </form>    </body>  </HTML>  后代码:MultiUpload.aspx.vb 
  Public Class MultiUpload      Inherits System.Web.UI.Page    Protected WithEvents Upload As System.Web.UI.WebControls.Button    Protected WithEvents MyTitle As System.Web.UI.WebControls.Label    Protected WithEvents strStatus As System.Web.UI.WebControls.Label 
  #Region " Web Form Designer Generated Code " 
    'This call is required by the Web Form Designer.    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() 
    End Sub 
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init      'CODEGEN: This method call is required by the Web Form Designer      'Do not modify it using the code editor.      InitializeComponent()    End Sub 
  #End Region 
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load      MyTitle.Text = "<h3>多文件上传</h3>"      Upload.Text = "开始上传"      If (Me.IsPostBack) Then Me.SaveImages()    End Sub 
    Private Function SaveImages() As System.Boolean      '遍历File表单元素      Dim files As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files 
      '状态信息      Dim strMsg As New System.Text.StringBuilder("上传的文件分别是:<hr color=red>")      Dim iFile As System.Int32      Try        For iFile = 0 To files.Count - 1          '检查文件扩展名字          Dim postedFile As System.Web.HttpPostedFile = files(iFile)          Dim fileName, fileExtension As System.String          fileName = System.IO.Path.GetFileName(postedFile.FileName)          If Not (fileName = String.Empty) Then            fileExtension = System.IO.Path.GetExtension(fileName)            strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>")            strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>")            strMsg.Append("上传文件的文件名:" + fileName + "<br>")            strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>")            '可根据扩展名字的不同保存到不同的文件夹            postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName)          End If        Next        strStatus.Text = strMsg.ToString()        Return True      Catch Ex As System.Exception        strStatus.Text = Ex.Message        Return False      End Try    End Function  End Class  C# 版本 
  UpLoad.aspx 
  <%@ Page language="c#" Codebehind="UpLoad.aspx.cs" AutoEventWireup="false" Inherits="WebPortal.Upload" %>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  <HTML>    <HEAD>      <title>多文件上传</title>      <script language="JavaScript">      function addFile()      {          var str = '<INPUT type="file" size="50" NAME="File">'          document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)      }      </script>    </HEAD>    <body>      <form id="form1" method="post" runat="server" enctype="multipart/form-data">        <div align="center">          <h3>多文件上传</h3>          <P id="MyFile"><INPUT type="file" size="50" NAME="File"></P>          <P>            <input type="button" value="增加(Add)" onclick="addFile()">            <input onclick="this.form.reset()" type="button" value="重置(ReSet)">            <asp:Button Runat="server" Text="开始上传" ID="UploadButton"></asp:Button>          </P>          <P>          <asp:Label id="strStatus" runat="server" Font-Names="宋体" Font-Bold="True" Font-Size="9pt"             Width="500px" BorderStyle="None" BorderColor="White"></asp:Label>          </P>         </div>      </form>    </body>  </HTML>  UpLoad.aspx.cs 
  using System;  using System.Collections;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Web;  using System.Web.SessionState;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.HtmlControls; 
  namespace WebPortal  {    /// <summary>    /// UpLoad 的摘要说明。    /// 实现多文件上传    /// </summary>    public class Upload : System.Web.UI.Page    {      protected System.Web.UI.WebControls.Button UploadButton;      protected System.Web.UI.WebControls.Label strStatus; 
      private void Page_Load(object sender, System.EventArgs e)      {        /// 在此处放置用户代码以初始化页面        if (this.IsPostBack) this.SaveImages();      } 
      private Boolean SaveImages()      {        ///'遍历File表单元素        HttpFileCollection files  = HttpContext.Current.Request.Files; 
        /// '状态信息        System.Text.StringBuilder strMsg = new System.Text.StringBuilder();        strMsg.Append("上传的文件分别是:<hr color=red>");        try        {          for(int iFile = 0; iFile < files.Count; iFile++)          {            ///'检查文件扩展名字            HttpPostedFile postedFile = files[iFile];            string fileName, fileExtension;            fileName = System.IO.Path.GetFileName(postedFile.FileName);            if (fileName != "")            {              fileExtension = System.IO.Path.GetExtension(fileName);              strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");              strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>");              strMsg.Append("上传文件的文件名:" + fileName + "<br>");              strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>");              ///'可根据扩展名字的不同保存到不同的文件夹              ///注意:可能要修改你的文件夹的匿名写入权限。              postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/") + fileName);            }          }          strStatus.Text = strMsg.ToString();          return true;        }        catch(System.Exception Ex)        {          strStatus.Text = Ex.Message;          return false;        }      }    #region Web 窗体设计器生成的代码    override protected void OnInit(EventArgs e)    {    //    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。    //    InitializeComponent();    base.OnInit(e);    } 
    /// <summary>    /// 设计器支持所需的方法 - 不要使用代码编辑器修改    /// 此方法的内容。    /// </summary>    private void InitializeComponent()    {          this.ID = "Upload";      this.Load += new System.EventHandler(this.Page_Load); 
    }    #endregion    }  }                         (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |