csl610(流浪者)
如果用多个File控件,我也不会在这里问了,如果要做一个壁纸下载专题,几十张图片一张一张选择上传么?我看也很难搞,转而求上传压缩包后自解压的方法

解决方案 »

  1.   

    多个htmlfileinput就可,另外再给个传文件夹的例子吧<%@  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>  
                           <script  language="JavaScript">  
           function  addFile()  
           {  
                       var  str  =  '<INPUT  type="file"  size="50"  NAME="File">'  
                       document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)  
           }  
                           </script>  
               </HEAD>  
               <body>  
                           <form  id="form1"  method="post"  runat="server"  enctype="multipart/form-data">  
                                       <div  align="center">  
                                                   <h3>多文件上传</h3>  
                                                   <P  id="MyFile"><INPUT  type="file"  size="50"  NAME="File"></P>  
                                                   <P>  
                                                               <input  type="button"  value="增加(Add)"  onclick="addFile()">  <input  onclick="this.form.reset()"  type="button"  value="重置(ReSet)">  
                                                               <asp:Button  Runat="server"  Text="开始上传"  ID="UploadButton"></asp:Button>  
                                                   </P>  
                                                   <P>  
                                                               <asp:Label  id="strStatus"  runat="server"  Font-Names="宋体"  Font-Bold="True"  Font-Size="9pt"  Width="500px"  
                                                                           BorderStyle="None"  BorderColor="White"></asp:Label>  
                                                   </P>  
                                       </div>  
                           </form>  
               </body>  
    </HTML>  
     
    代码部分  
     
    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  
    {  
               ///  <summary>  
               ///  UpLoad  的摘要说明。  
               ///  实现多文件上传  
               ///  </summary>  
               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("上传的文件分别是:<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();  
                                                   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);  
                           }  
     
                           ///  <summary>  
                           ///  设计器支持所需的方法  -  不要使用代码编辑器修改  
                           ///  此方法的内容。  
                           ///  </summary>  
                           private  void  InitializeComponent()  
                           {          
                                       this.ID  =  "Upload";  
                                       this.Load  +=  new  System.EventHandler(this.Page_Load);  
     
                           }  
                           #endregion  
               }  
    }
      

  2.   

    okwinds(梦无忧)
    谢谢你,不过这还不是我想要的
    我需要的是能够在一个对话框里框选多个文件
    我感觉比较难以实现,就转而寻求上传压缩包后解压了另外请贴一下上传目录的程序,谢谢
      

  3.   

    上传压缩包后解压吧
    Process p = new Process();
    p.StartInfo.FileName = Server.MapPath( "Rar.exe" );
    p.StartInfo.Arguments = "x -t -o+ -p- " + Server.MapPath( sourceFile ) + " " + Server.MapPath( targetPath );
    p.Start();
    while( !p.HasExited )
    System.Threading.Thread.Sleep( 100 );