在ASP.NET中实现多文件上传
来源:互联网 发布:chm阅读软件 编辑:程序博客网 时间:2024/06/05 18:20
在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET,文件上传变得轻而易举。下面的这个例子实现了多文件上传功能。可以动态添加输入表单,上传的文件数量没有限制。代码如下:
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></HEAD><body><form id="form1" method="post" runat="server" enctype="multipart/form-data"><div align="center"><div><b><font size="4">多文件上传</font></b></div><div id="MyFile"><INPUT type="file" size="50" NAME="File"></div><P><input type="button" value="增加(Add)" onclick="addFile()"><input onclick="this.form.reset()" type="button" value="重置(ReSet)"></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{/// &amp;lt;summary&amp;gt;/// UpLoad 的摘要说明。/// 实现多文件上传/// &amp;lt;/summary&amp;gt;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(&amp;quot;上传的文件分别是:&amp;lt;hr color=red&amp;gt;&amp;quot;);try{for(int iFile = 0; iFile &amp;lt; files.Count; iFile++){///'检查文件扩展名字HttpPostedFile postedFile = files[iFile];string fileName, fileExtension;fileName = System.IO.Path.GetFileName(postedFile.FileName);if (fileName != &amp;quot;&amp;quot;){fileExtension = System.IO.Path.GetExtension(fileName);strMsg.Append(&amp;quot;上传的文件类型:&amp;quot; + postedFile.ContentType.ToString() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);strMsg.Append(&amp;quot;客户端文件地址:&amp;quot; + postedFile.FileName + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);strMsg.Append(&amp;quot;上传文件的文件名:&amp;quot; + fileName + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);strMsg.Append(&amp;quot;上传文件的扩展名:&amp;quot; + fileExtension + &amp;quot;&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;quot;);///'可根据扩展名字的不同保存到不同的文件夹///注意:可能要修改你的文件夹的匿名写入权限。postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(&amp;quot;images/&amp;quot;) + 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);}/// &amp;lt;summary&amp;gt;/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// &amp;lt;/summary&amp;gt;private void InitializeComponent(){this.ID = &amp;quot;Upload&amp;quot;;this.Load += new System.EventHandler(this.Page_Load);}#endregion}}