<%@ Page Language= " C# " AutoEventWireup= " true " CodeFile= " MultiFileUpload.aspx.cs " Inherits= " MultiFileUpload " %> <!DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html xmlns= " http://www.w3.org/1999/xhtml "> <head runat= " server "> <title>ASP.NET多文件上传测试</title> <script type= " text/javascript "> function addFile() { var div = document.createElement( " div "); var f = document.createElement( " input "); f.setAttribute( " type ", " file ") f.setAttribute( " name ", " File ") f.setAttribute( " size ", " 50 ") div.appendChild(f) var d = document.createElement( " input "); d.setAttribute( " type ", " button ") d.setAttribute( " onclick ", " deteFile(this) "); d.setAttribute( " value ", " 移除 ") div.appendChild(d) document.getElementById( " _container ").appendChild(div); } function deteFile(o) { while (o.tagName != " DIV ") o = o.parentNode; o.parentNode.removeChild(o); } </script> </head> <body> <form id= " form1 " runat= " server " method= " post " enctype= " multipart/form-data "> <h3>多文件上传</h3> 用户名:<asp:TextBox ID= " TextBox1 " runat= " server "></asp:TextBox> <div id= " _container "> <input type= " file " size= " 50 " name= " File " /> </div> <div> <input type= " button " value= " 添加文件(Add) " οnclick= " addFile() " /> </div> <div style= " padding:10px 0 "> <asp:Button runat= " server " Text= " 开始上传 " ID= " UploadButton " οnclick= " UploadButton_Click "></asp:Button> </div> <div> <asp:Label ID= " strStatus " runat= " server " Font-Names= " 宋体 " Font-Bold= " True " Font-Size= " 9pt " Width= " 500px " BorderStyle= " None " BorderColor= " White "></asp:Label> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class MultiFileUpload : System.Web.UI.Page { protected void UploadButton_Click( object sender, EventArgs e) { /// '遍历File表单元素 HttpFileCollection files = HttpContext.Current.Request.Files; /// '状态信息 System.Text.StringBuilder strMsg = new System.Text.StringBuilder( " 您输入的用户名是: " + TextBox1.Text + " <br/> "); 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(); } catch (System.Exception Ex) { strStatus.Text = Ex.Message; } } }