今天用到了同时上传多个文件,自己写了段代码来实现这个功能。可以在其中限制文件大小,上传格式。但是没有做数量的限制。估计传多了也自然会失败吧。具体ContentType里对应的值,请参考我的另一篇文章 http://www.cnblogs.com/mgod/archive/2007/04/24/725200.html
.CS的代码如下

protected bool upMorefile()
    
{
        
        
//遍历File表单元素
        System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
        
//状态信息
        System.Text.StringBuilder strMsg = new System.Text.StringBuilder("成功上传的文件信息分别为:<hr color=red>");
        
int fileCount;
        
int filecount = files.Count;
        
       
        
try
        
{
            
for (fileCount = 0; fileCount < files.Count; fileCount++)
            
{
                
//定义访问客户端上传文件的对象
                System.Web.HttpPostedFile postedFile = files[fileCount];
                
string FileType = postedFile.ContentType.ToString();//获取要上传的文件类型,验证文件头  

                
string fileName, fileExtension;
                
//取得上传得文件名
                fileName = System.IO.Path.GetFileName(postedFile.FileName);
                
//取得文件的扩展名
                fileExtension = System.IO.Path.GetExtension(fileName);

                
//在上传文件不为空的情况下,验证文件名以及大小是否符合,如果不符合则不允许上传
                if (((FileType == "text/plain" && fileExtension.ToLower() == ".txt"|| (FileType == "application/x-zip-compressed" && fileExtension.ToLower() == ".zip"|| (FileType == "application/octet-stream" && fileExtension.ToLower() == ".rar"))&&postedFile.ContentLength/1024<=1024)
                
{//在这里通过检查文件头与文件名是否匹配 从而限制了文件上传类型  注:可上传的类型有TXT,ZIP,RAR,且大小只能为1M一下
                    
                    
if (fileName != String.Empty)
                    
{
                        fileName 
= RandomFileName() + fileExtension;
                        
                        
//上传的文件信息
                        strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");
                        strMsg.Append(
"客户端文件地址:" + postedFile.FileName + "<br>");
                        strMsg.Append(
"上传文件的文件名:" + fileName + "<br>");
                        strMsg.Append(
"上传文件的大小为:" + postedFile.ContentLength + "字节<br>");
                        strMsg.Append(
"上传文件的扩展名:" + fileExtension + "<br><hr color=red>");
                        
//保存到指定的文件夹
                        postedFile.SaveAs(Server.MapPath("public_file/" + UserName + "/"+ fileName);
                        fileName 
= "";

                    }

                }

                
else
                
{
                    strStatus.Text
+= ""+(fileCount+1)+"个文件不符合要求<br/>  ";
                    
                }

                
            }

            
            strStatus.Text 
+= strMsg.ToString();
            
return true;
        }

        
catch (System.Exception error)
        
{
            strStatus.Text 
= error.Message;
            
return false;

        }

    }



    
protected void Upload_Click(object sender, EventArgs e)
    
{
        strStatus.Text 
= "";//讲提示信息清空
        upMorefile();//调用上传类

    }


public string RandomFileName()
    
{//返回随机数的类
        string filename = "";
        
string r1 = "";
        
string r2 = "";
        
string r4 = "";
        Random random 
= new Random();
        r1 
= ((char)random.Next(6590)).ToString();//大写字母
        r2 = ((char)random.Next(97122)).ToString();//小写字母        
        r4 = random.Next(10000999999).ToString();
        filename 
= DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + r1 + r4 + r2 + r1 + r4 + r1;

        
return filename;

    }


前台代码如下

<script language="JavaScript">
            
function addFileControl()
            
{
                
var str = '<INPUT type="file" NAME="File">'
                document.getElementById('FileCollection').insertAdjacentHTML(
"beforeEnd",str)
            }

    
</script>
    

            
<asp:Panel ID="PanelFileManage" runat="server" Width="100%">
        
        
<id="FileCollection"><INPUT type="file" name="File">&nbsp;</P>
                
<align="center" style="color:Red">
                    允许上传的类型为:ZIP,RAR,TXT,大小为1M以下
</p>
            
<align="center"><input onclick="addFileControl()" type="button" value="增加(File)">
                
<asp:button id="Upload" Runat="server" Text="上传" Width="56px" OnClick="Upload_Click"></asp:button>
                
<input style="WIDTH: 56px; HEIGHT: 24px" onclick="this.form.reset()" type="button" value="重置">
            
</P>
            
<align="center"><asp:label id="strStatus" runat="server" BorderColor="White" BorderStyle="None" Width="500px"
                    Font-Size
="9pt" Font-Bold="True" Font-Names="宋体"></asp:label></P>
        
    
</asp:Panel> 

并且一定要注意在form中添加一个enctype项,才可以使用。如下:

<form id="form1" runat="server" enctype="multipart/form-data">