在ASP.NET中实现多文件上传

mac2022-06-30  76

本文来自http://dotnet.aspx.cc/article/58ea3515-36f2-4fd9-ac89-eaf49f59816c/read.aspx

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

ASPX 代码 <% @ 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 > 孟宪会多文件上传测试 </ 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)" onclick ="addFile()" />    </ div >    < div style ="padding:10px 0" >      < asp:Button runat ="server" Text ="开始上传" ID ="UploadButton"       onclick ="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 >

C# 代码 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;      }    }}

转载于:https://www.cnblogs.com/Mygirl/archive/2011/10/12/2208654.html

相关资源:asp.net利用ftp上传文件实现示例代码
最新回复(0)