前台
<script type="text/javascript" >
var tempCon = new Array();function addFile()
    {
    
     
        var oTb = document.getElementById("myFile");
        var oTr = oTb.insertRow(0); 
          var fjCnt = document.getElementById("fjCnt");
     
        var name = "thefilename" + fjCnt.value;
        fjCnt.value=parseInt(fjCnt.value)+1;
       
        oTr.insertCell(0).innerHTML = "<input id='file' name='"+name+"' type=file size='20'> <input type='button' value='取消' onclick='javascript:delObj(this)' class='imgButton'>";
    }
    
function delObj(obj)
{    
    obj.parentElement.removeNode(true);    
}
 
</script><tr>
                <td class="td1">
                生产
                  
                </td>
                <td class="td2">
                  <asp:TextBox ID="producenm" runat="server" TextMode="MultiLine"  Rows="3"  Width="80%"></asp:TextBox>
                
                </td>
                <td  class="td2"  style="width:350px;">
                <DIV style="HEIGHT: auto" class="MNtable">
             <TABLE style="WIDTH: 100%" id="myFile">
             <TBODY><TR><TD>
             <INPUT id="Button2" class="bt" onclick="javascript:addFile()" type="button" /> 
             <INPUT id="fjCnt" class="disNo" type="text" /></TD>
             </TR>
             <TR>
             <TD>
             <asp:Label id="saveStatu" runat="server" Text="" ForeColor="#990000"></asp:Label>
             </TD></TR></TBODY></TABLE></DIV>
                </td>
                
                </tr>后台
 private Boolean SaveImages()
    {
        ///置空fileArr
        fileArr.Clear();        saveStatu.Text = "";
        ///'遍历File表单元素        //如果没有上传图片
        /// '状态信息
        System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
        /// 随机生成的文件名
        string strRankName;
        /// 图片地址数组
        ///strMsg.Append("上传的文件分别是:<hr color=red>");
        try
        {
            //Save图片
            for (int iFile = 0; iFile < files.Count; iFile++)
            {
                HttpPostedFile postedFile = files[iFile];
                string fileName, fileExtension;
                double filesize;
                fileName = System.IO.Path.GetFileName(postedFile.FileName);
                filesize = Convert.ToDouble(postedFile.ContentLength) / 1024;                if (fileName != "")
                {
                    fileExtension = System.IO.Path.GetExtension(fileName);                    if (fileExtension.ToUpper() == ".exe" || fileExtension.ToUpper() == ".asp" || fileExtension.ToUpper() == ".aspx" || fileExtension.ToUpper() == ".htm")
                    {                        Page.RegisterStartupScript("ImageButton3", "<script>alert('上传文件格式不对')</script>");
                        return false;
                    }
                    else
                    {                        //strRankName = convertName(fileExtension);
                        strRankName = convertName(fileName);
                        postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("upfile/") + strRankName);
                        strMsg.Append("上传成功:<span style='text-decoration:underline;'>" + fileName + "</span>!<br>");                        //把原文件名,现文件名,文件大小存到一个ArraList中
                        ArrayList inls = new ArrayList();
                        inls.Add(fileName);
                        inls.Add(strRankName);
                        inls.Add(filesize);                        //保存文件增加到ArralList
                        fileArr.Add(inls);
                    }
                }
                else
                {                    Page.RegisterStartupScript("ImageButton3", "<script>alert('存在未指定的图片地址,请检查!')</script>");                    return false;
                }
            }            saveStatu.Text += strMsg.ToString();
            return true;
        }
        catch (System.Exception Ex)
        {
            Page.RegisterStartupScript("ImageButton3", "<script>alert('上传失败')</script>");
            return false;
        }
    }
    /// <summary>
    /// 文件名格式化转换
    /// </summary>
    /// <returns></returns>
    private string convertName(string fileExtension)
    {
        Random ran = new Random();
        string r1 = ran.Next(1, 100).ToString();
        string filename = DateTime.Now.ToString("yyMMddhhmmss") + r1 + System.IO.Path.GetExtension(fileExtension);
        return filename;
    }    /// <summary>
    /// 保存附件
    /// </summary>    protected void File_Save(int id)
    {        
              if (files.Count == 0)
        {
        }
        else
        {            if (SaveImages() == false)                return;            foreach (ArrayList ar in fileArr)
            {
                string finame = "upfile/" + ar[1].ToString();                at.InsertQueryAttach(id, finame, ar[0].ToString(), Convert.ToDecimal(ar[2].ToString()));
                          }
        }
    }

解决方案 »

  1.   

    但如果 还有另一类
     <tr>
                    <td class="td1">
                    生产
                      
                    </td>
                    <td class="td2">
                      <asp:TextBox ID="producenm" runat="server" TextMode="MultiLine"  Rows="3"  Width="80%"></asp:TextBox>
                    
                    </td>
                    <td  class="td2"  style="width:350px;">
                    <DIV style="HEIGHT: auto" class="MNtable">
                 <TABLE style="WIDTH: 100%" id="myFile">
                 <TBODY><TR><TD>
                 <INPUT id="Button2" class="bt" onclick="javascript:addFile()" type="button" /> 
                 <INPUT id="fjCnt" class="disNo" type="text" /></TD>
                 </TR>
                 <TR>
                 <TD>
                 <asp:Label id="saveStatu" runat="server" Text="" ForeColor="#990000"></asp:Label>
                 </TD></TR></TBODY></TABLE></DIV>
                    </td>
                    
                    </tr>
                    
                     <tr>
                    <td class="td1">
                    品质
                      
                    </td>
                    <td class="td2">
                      <asp:TextBox ID="qualitynm" runat="server" TextMode="MultiLine"  Rows="3"  Width="80%"></asp:TextBox>
                    
                    </td>
                    <td  class="td2"  style="width:350px;">
                    <DIV style="HEIGHT: auto" class="MNtable">
                 <TABLE style="WIDTH: 100%" id="myFile1">
                 <TBODY><TR><TD>
                 <INPUT id="Button1" class="bt" onclick="javascript:addFile1()" type="button" /> 
                 <INPUT id="fjCnt1" class="disNo" type="text" /></TD>
                 </TR>
                 <TR>
                 <TD>
                 <asp:Label id="Label3" runat="server" Text="" ForeColor="#990000"></asp:Label>
                 </TD></TR></TBODY></TABLE></DIV>
                    </td>
                    
                    </tr>如果有两类要对应 的附件上传
    前台可以 加上
    function addFile1()
        {
        
         
            var oTb = document.getElementById("myFile1");
            var oTr = oTb.insertRow(0); 
              var fjCnt1 = document.getElementById("fjCnt1");
                     var name = "thefilename1" + fjCnt1.value;
            
           
            fjCnt1.value=parseInt(fjCnt1.value)+1;
            
           
            oTr.insertCell(0).innerHTML = "<input id='file1' name='"+name+"' type=file size='20'> <input type='button' value='取消' onclick='javascript:delObj(this)' class='imgButton'>";
        }但后台读的是file流就不知怎么区分上传的是生产的还是品质的附件了
      

  2.   

    Request.Files["表单名称"]来区分
      

  3.   

    想着用原来的代码,然后 读取第一分类的附件个数,
    在个数里的就是第一分类然后读第二分类的个数
    //把原文件名,现文件名,文件大小存到一个ArraList中
      ArrayList inls = new ArrayList();
      inls.Add(fileName);
      inls.Add(strRankName);
      inls.Add(filesize);  //保存文件增加到ArralList
      fileArr.Add(inls);上面的改成// 保存第一分类的                        if (iFile <Convert.ToInt16(fjnum.Text))
                            {                            inls.Add(fileName);
                                inls.Add(strRankName);
                                inls.Add(filesize);
                                inls.Add("sc");
                                fileArr.Add(inls);
                                
                            }
      

  4.   

    怎么区分上传的是生产的还是品质的附件了?
    你的<input type=file name=xxx
    不都是有name属性的吗?读取
    生产的,你的name=shengchan1 name=shengchan2这样
    品质的,你的name=pinzhi1 name=pinzhi2这样