源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

在ASP.NET中实现多文件上传的方法

  • 时间:2020-07-28 07:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在ASP.NET中实现多文件上传的方法
在以前的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   } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部