在ASP.NET中实现多文件上传的方法_asp.net教程-查字典教程网
在ASP.NET中实现多文件上传的方法
在ASP.NET中实现多文件上传的方法
发布时间:2016-12-29 来源:查字典编辑
摘要:在以前的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"BorderBorderColor="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"BorderBorderColor="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教程学习
    编程开发子分类