在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举. 下面的这个例子实现了多文件上传功能.可以动态添加输入表单,上传的文件数量没有限制.代码如下: multiupload.aspx <%@ Page Language=Label Runat= ID= ></asp:Label><P id= > <INPUT type= size= NAME= ></P><P> <input type= value= οnclick= > <asp:Button Runat= Text= ID= ></asp:Button> <input οnclick=this.form.reset( ) button 重置( ReSet ) center <asp:Label id= runat= Font-Names= Font-Bold= Font-Size= Width= BorderStyle= BorderColor= ></asp:Label></P> </form> </body></HTML> 后代码:multiupload.aspx.vb public Class MultiUploadInherits System.Web.UI.PageProtected WithEvents Upload As System.Web.UI.WebControls.ButtonProtected WithEvents MyTitle As System.Web.UI.WebControls.LabelProtected WithEvents strStatus As System.Web.UI.WebControls.Label#region 'This call is required by the Web Form Designer.<System.Diagnostics.DebuggerStepThrough( )> Private Sub InitializeComponent( )End SubPrivate 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 RegionPrivate Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.LoadMyTitle.Text = Upload.Text = If ( Me.IsPostBack ) Then Me.SaveImages( )End SubPrivate 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( )Dim iFile As System.Int32TryFor iFile = 0 To files.Count - 1'检查文件扩展名字Dim postedFile As System.Web.HttpPostedFile = files( iFile )Dim fileName, fileExtension As System.StringfileName = System.IO.Path.GetFileName( postedFile.FileName )If Not ( fileName = String.Empty ) ThenfileExtension = System.IO.Path.GetExtension( fileName )strMsg.Append( + postedFile.ContentType.ToString( ) + )strMsg.Append( + postedFile.FileName + )strMsg.Append( + fileName + )strMsg.Append( + fileExtension + )'可根据扩展名字的不同保存到不同的文件夹postedFile.SaveAs( System.Web.HttpContext.Current.Request.MapPath( ) + fileName )End IfNextstrStatus.Text = strMsg.ToString( )Return TrueCatch Ex As System.ExceptionstrStatus.Text = Ex.MessageReturn FalseEnd TryEnd FunctionEnd Class c# 版本 upload.aspx <%@ Page language= Codebehind= AutoEventWireup= Inherits= %> <!DOCTYPE HTML PUBLIC <HTML><HEAD> <title>多文件上传</title><s cript language= >function addFile( ) { var str = ' <INPUT type= size= NAME= >'document.getElementById( 'MyFile' ).insertAdjacentHTML( ,str ) } </s cript></HEAD> <body> <form id= method= runat= enctype= ><div align= ><h3>多文件上传</h3><P id= > <INPUT type= size= NAME= ></P><P> <input type= value= οnclick= > <input οnclick=this.form.reset( ) button 重置( ReSet ) <asp:Button Runat= Text= ID= ></asp:Button></P><P> <asp:Label id= runat= Font-Names= Font-Bold= Font-Size= Width= BorderStyle= BorderColor= ></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( ); 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( ) + ); strMsg.Append( + postedFile.FileName + ); strMsg.Append( + fileName + ); strMsg.Append( + fileExtension + ); ///'可根据扩展名字的不同保存到不同的文件夹 ///注意:可能要修改你的文件夹的匿名写入权限.postedFile.SaveAs( System.Web.HttpContext.Current.Request.MapPath( } } strStatus.Text = strMsg.ToString( ); ) + fileName ); 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 = ; this.Load += new System.EventHandler( this.Page_Load ); } #endregion } }AutoEventWireup= Codebehind= Inherits= %> <!DOCTYPE HTML PUBLIC <HTML><HEAD> <title>多文件上传</title><s cript language= >function addFile( ) { var str = ' <INPUT type= size= NAME= >'document.getElementById( 'MyFile' ).insertAdjacentHTML( ,str ) } </s cript></HEAD> <body> <form id= method= runat= enctype= ><center> <asp:
ASP.NET中实现多文件上传
最新推荐文章于 2024-06-28 15:41:54 发布