手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >在ASP.NET中实现多文件上传的方法
在ASP.NET中实现多文件上传的方法
摘要:在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表...

在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下:

MultiUpload.aspx

<%@PageLanguage="vb"AutoEventWireup="false"Codebehind="MultiUpload.aspx.vb"

Inherits="aspxWeb.MultiUpload"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<HTML>

<HEAD>

<title>多文件上传</title>

<scriptlanguage="JavaScript">

functionaddFile()

{

varstr='<INPUTtype="file"size="50"NAME="File">'

document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)

}

</script>

</HEAD>

<body>

<formid="form1"method="post"runat="server"enctype="multipart/form-data">

<center>

<asp:LabelRunat="server"ID="MyTitle"></asp:Label>

<Pid="MyFile"><INPUTtype="file"size="50"NAME="File"></P>

<P>

<inputtype="button"value="增加(Add)"onclick="addFile()">

<asp:ButtonRunat="server"Text="上传"ID="Upload"></asp:Button>

<inputonclick="this.form.reset()"type="button"value="重置(ReSet)">

</P>

</center>

<Palign="center">

<asp:Labelid="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

PublicClassMultiUpload

InheritsSystem.Web.UI.Page

ProtectedWithEventsUploadAsSystem.Web.UI.WebControls.Button

ProtectedWithEventsMyTitleAsSystem.Web.UI.WebControls.Label

ProtectedWithEventsstrStatusAsSystem.Web.UI.WebControls.Label

#Region"WebFormDesignerGeneratedCode"

'ThiscallisrequiredbytheWebFormDesigner.

<System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComponent()

EndSub

PrivateSubPage_Init(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Init

'CODEGEN:ThismethodcallisrequiredbytheWebFormDesigner

'Donotmodifyitusingthecodeeditor.

InitializeComponent()

EndSub

#EndRegion

PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load

MyTitle.Text="<h3>多文件上传</h3>"

Upload.Text="开始上传"

If(Me.IsPostBack)ThenMe.SaveImages()

EndSub

PrivateFunctionSaveImages()AsSystem.Boolean

'遍历File表单元素

DimfilesAsSystem.Web.HttpFileCollection=System.Web.HttpContext.Current.Request.Files

'状态信息

DimstrMsgAsNewSystem.Text.StringBuilder("上传的文件分别是:<hrcolor=red>")

DimiFileAsSystem.Int32

Try

ForiFile=0Tofiles.Count-1

'检查文件扩展名字

DimpostedFileAsSystem.Web.HttpPostedFile=files(iFile)

DimfileName,fileExtensionAsSystem.String

fileName=System.IO.Path.GetFileName(postedFile.FileName)

IfNot(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)

EndIf

Next

strStatus.Text=strMsg.ToString()

ReturnTrue

CatchExAsSystem.Exception

strStatus.Text=Ex.Message

ReturnFalse

EndTry

EndFunction

EndClass

C#版本

UpLoad.aspx

<%@Pagelanguage="c#"Codebehind="UpLoad.aspx.cs"AutoEventWireup="false"Inherits="WebPortal.Upload"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<HTML>

<HEAD>

<title>多文件上传</title>

<scriptlanguage="JavaScript">

functionaddFile()

{

varstr='<INPUTtype="file"size="50"NAME="File">'

document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)

}

</script>

</HEAD>

<body>

<formid="form1"method="post"runat="server"enctype="multipart/form-data">

<divalign="center">

<h3>多文件上传</h3>

<Pid="MyFile"><INPUTtype="file"size="50"NAME="File"></P>

<P>

<inputtype="button"value="增加(Add)"onclick="addFile()">

<inputonclick="this.form.reset()"type="button"value="重置(ReSet)">

<asp:ButtonRunat="server"Text="开始上传"ID="UploadButton"></asp:Button>

</P>

<P>

<asp:Labelid="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

usingSystem;

usingSystem.Collections;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Web;

usingSystem.Web.SessionState;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.HtmlControls;

namespaceWebPortal

{

///<summary>

///UpLoad的摘要说明。

///实现多文件上传

///</summary>

publicclassUpload:System.Web.UI.Page

{

protectedSystem.Web.UI.WebControls.ButtonUploadButton;

protectedSystem.Web.UI.WebControls.LabelstrStatus;

privatevoidPage_Load(objectsender,System.EventArgse)

{

///在此处放置用户代码以初始化页面

if(this.IsPostBack)this.SaveImages();

}

privateBooleanSaveImages()

{

///'遍历File表单元素

HttpFileCollectionfiles=HttpContext.Current.Request.Files;

///'状态信息

System.Text.StringBuilderstrMsg=newSystem.Text.StringBuilder();

strMsg.Append("上传的文件分别是:<hrcolor=red>");

try

{

for(intiFile=0;iFile<files.Count;iFile++)

{

///'检查文件扩展名字

HttpPostedFilepostedFile=files[iFile];

stringfileName,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();

returntrue;

}

catch(System.ExceptionEx)

{

strStatus.Text=Ex.Message;

returnfalse;

}

}

#regionWeb窗体设计器生成的代码

overrideprotectedvoidOnInit(EventArgse)

{

//

//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

///<summary>

///设计器支持所需的方法-不要使用代码编辑器修改

///此方法的内容。

///</summary>

privatevoidInitializeComponent()

{

this.ID="Upload";

this.Load+=newSystem.EventHandler(this.Page_Load);

}

#endregion

}

}

【在ASP.NET中实现多文件上传的方法】相关文章:

ASP.NET中实现Form表单字段值自动填充到操作模型中

ASP.NET中实现获取调用方法名

asp.net中包含文件的代码及使用方法

ASP.NET MVC3 实现全站重定向的简单方法

基于ASP.NET的数据迁移方法 dbf上传

.NET实现在网页中预览Office文件的3个方法

ASP.NET2.0中数据源控件之异步数据访问

ASP.NET中TreeView用法

ASP.NET中 Execl导出的六种方法实例

浅谈ASP.NET中多层架构

精品推荐
分类导航