CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

怎样实现多文件上传?谢谢

楼主suiyun(始终搞不懂com+)2004-05-01 19:02:29 在 .NET技术 / ASP.NET 提问

如果显式使用多个<input   type="file">能够实现,但是这时候需要添加相应个数的控件。  
  像邮箱那样,能够多次添加文件(有一个“粘贴”按钮)这是怎么实现的?  
  我的程序需要能够上传任意数目的文件,但只显示一个<input>这怎么做?  
  大家给个例子好不好? 问题点数:20、回复次数:12Top

1 楼xaodoudou(我不想做潜水员)回复于 2004-05-01 19:37:53 得分 1

也是  
  我也想知道   关注中Top

2 楼suiyun(始终搞不懂com+)回复于 2004-05-01 20:52:42 得分 0

大家帮忙啊Top

3 楼bitsbird(一瓢 在路上...)回复于 2004-05-01 20:58:03 得分 2

http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816CTop

4 楼xytoto(我是一个演员)回复于 2004-05-01 22:00:00 得分 1

Request.Files[]Top

5 楼chengsion()回复于 2004-05-01 22:32:31 得分 10

用一个Session(根据情况也可以用Cache)保存ArrayList对象,ArrayList对象可以保存任意个Object.  
  每粘贴一次就将添加一个HttpPostedFile对象至ArrayList,等上传时,遍历ArrayList,保存HttpPostedFile.  
  <%@Page   debug="true"%>  
  <%@Import   Namespace="System"%>  
  <%@Import   Namespace="System.IO"%>  
  <%@Import   Namespace="System.Collections"%>  
   
  <script   language="c#"   runat   =   "server">  
   
   
  void   Page_Load(Object   sender,EventArgs   e)  
  {  
   
  if   (!Page.IsPostBack)  
  {  
  if   (Session["allFile"]==null)  
  {  
  ArrayList   allFile   =   new   ArrayList();  
  Session["allFile"]   =   allFile;  
  }  
  }  
  }  
   
  void   doPostedFile(Object   sender,EventArgs   e)  
  {  
  HttpPostedFile   hpf   =   upLoadFile.PostedFile;  
  ArrayList   allFile;  
  if   (hpf.ContentLength==0)  
  {  
  return;  
  }  
  try  
  {  
  allFile   =   (ArrayList)Session["allFile"];  
  allFile.Add(hpf);  
  errMessage.Text   =   "当前共粘贴"+   allFile.Count   +   "个文件";    
  //Session["allFile"]   =   allFile;    
  }  
  catch(Exception   excp)  
  {  
  errMessage.Text   =   excp.Message;  
  }  
   
  lblMessage.Text   +=   hpf.FileName   +   "<br/>";  
  }    
   
  void   doSaveFile(HttpPostedFile   hpf)  
  {  
  char   []de={'\\'};  
  string   strFileName;  
  string   []aFileName;  
   
  aFileName   =   hpf.FileName.Split(de);  
  strFileName   =   aFileName[aFileName.Length-1];  
   
  try  
  {  
  hpf.SaveAs(Server.MapPath(".")   +   "\\"   +   strFileName);  
   
  }  
  catch   (Exception   excp)  
  {  
  errMessage.Text   +=   excp.Message+"<br/>";  
  }  
  }  
   
  void   doUpLoadFile(Object   sender,EventArgs   e)  
  {  
  ArrayList   allFile   =   new   ArrayList();  
  try  
  {  
  allFile   =   (ArrayList)Session["allFile"];  
  }  
  catch(Exception   excp)  
  {  
  errMessage.Text=excp.Message;  
  }  
   
  IEnumerator   myFile   =   allFile.GetEnumerator();  
  HttpPostedFile   file;  
   
  errMessage.Text   +=   "Count"   +   allFile.Count;    
  while(myFile.MoveNext())  
  {  
  try  
  {  
  file   =   (HttpPostedFile)(myFile.Current);  
  doSaveFile(file);  
  }  
  catch(Exception   excp)  
  {  
  errMessage.Text   =   excp.Message;  
  }  
  }  
   
  ((ArrayList)Session["allFile"]).Clear();  
  errMessage.Text="上传结束";  
  lblMessage.Text="";  
  }  
   
   
   
  </script>  
  <html>  
  <head><title>上传文件</title></head>  
  <body>  
  <form   Enctype="multipart/form-data"   runat="server">  
  <b>上传单个文件</b><br/>  
  <hr   width="60%">  
  请选择文件:<br/>  
  <input   type="file"   size="30"   id="upLoadFile"   runat="server"/><br/>  
  <asp:Button   Text="粘贴"   OnClick="doPostedFile"   runat="server"/><br/>  
  <asp:Button   Text="上传"   OnClick="doUpLoadFile"   runat="server"/><br/>  
  <asp:Label   id="errMessage"   runat="server"/><br/>  
  <asp:Label   id="lblMessage"   runat="server"/><br/>  
  </form>  
  </body>  
  </html>Top

6 楼swzheng(zheng)回复于 2004-05-01 23:02:30 得分 3

我这个保证可以用.我不久前刚用的.  
   
   
   
   
  <html>  
  <script   language="vb"   runat="server">  
                  sub   btnupload_click(snder   as   object,e   as   eventargs)  
                              lblfilename.text=myfile.postedfile.filename  
                              lblcontenttype.text=myfile.postedFile.contenttype  
                              lblcontentlength.text=myfile.postedfile.contentlength  
                              dim   filepart()   as   string=split(myfile.postedfile.filename,"\")  
                              DIM   strname   as   string=filepart(filepart.length-1)  
                              myfile.postedFile.saveas(server.mappath("wwwroot")&strname)  
                              end   sub  
  </script>  
  <body>  
  <form   method="post"   enctype="multipart/form-data"   runat="server"   ID="Form1">  
  <h3>asp.net文件上传</h3>  
  <input   id="myfile"   type="file"   size="20"   maxlength="60"   runat="server"   NAME="myfile">  
  <p>  
  <asp:Button   id="btnupload"   text="上传"   Runat="server"   OnClick="btnupload_click"></asp:Button>  
  <HR>  
  文件名:  
  <asp:Label   id="lblfilename"   runat="server"></asp:Label>  
  <P>文件类型:  
  <asp:Label   id="lblcontenttype"   Runat="server"></asp:Label>  
  <P>文件大小:  
  <asp:Label   id="lblcontentlength"   Runat="server"></asp:Label>  
  </form>  
  </body>  
  </html>Top

7 楼swzheng(zheng)回复于 2004-05-01 23:05:40 得分 0

错了,我刚才没有看清你的要求.  
  上帖不符合.Top

8 楼babyjavalover(勇敢)回复于 2004-05-02 14:10:55 得分 1

关注Top

9 楼suiyun(始终搞不懂com+)回复于 2004-05-04 21:10:31 得分 0

感谢各位,我的要求是在上传文件的过程中客户只能看到一个上传控件,但是能够制定多个上传文件Top

10 楼wwcll(好好学习,向思归大哥看齐)回复于 2004-05-05 09:50:05 得分 1

stuedy   upTop

11 楼GreenSpring(清青泉(www.iblogs.cn))回复于 2004-05-08 14:33:33 得分 1

up  
  Top

12 楼ILoveProgramer(骆驼)回复于 2004-08-04 18:49:03 得分 0

markTop

相关问题

  • ASP中,怎样实现文件上传?
  • 用FSO怎样实现上传文件?
  • J2EE中怎样实现文件传输??
  • 在DELPHI中怎样用ISAPI(CGI)实现文件上传功能?
  • JAVA怎样实现多个文件上传?
  • 请问怎样实现上传.zip文件自动解压?
  • ====== 怎样实现点对点的文件传输啊??? ======
  • 怎样用ASP实现DOC等文件的上传和下载
  • 请问怎样用ASP实现文件的上传及下载?
  • 怎样实现Cuteftp式的文件上传和下载?

关键词

得分解答快速导航

  • 帖主:suiyun
  • xaodoudou
  • bitsbird
  • xytoto
  • chengsion
  • swzheng
  • babyjavalover
  • wwcll
  • GreenSpring

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo