<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>多文件上传 </title>    <script language="Javascript">     
    var i = 0;
function addFile() 

    i++;
    if ( i >=5 )
    return false  
    else    
    var str = '<INPUT type="file" size="30" NAME="File"><br>' 
    document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)  
}  
    </script>
    <link href="../Css/user.css" rel="stylesheet" type="text/css" /></head>
<body>
    <form id="form1" method="post" runat="server" enctype="multipart/form-data">
        <div align="center">
            <br />
            <table>
                <tr>
                    <td style="width: 138px">
                        选择相册:</td>
                    <td style="width: 200px">
                        <asp:DropDownList ID="DropDownList1" runat="server">
                        </asp:DropDownList></td>
                </tr>
                <tr>
                    <td colspan="2">
                        <hr />
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="text-align: center">
                        批量上传图片(限制5张/次):</td>
                </tr>
                <tr>
                    <td colspan="2">
                        <p id="MyFile" style="width: 30px">
                            <input type="file" name="File" size="30"></p>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <input type="button" value="增加(Add)" onclick="addFile()" id="Button1"><input onclick="this.form.reset()"
                            type="button" value="重置(ReSet)"><asp:Button runat="server" Text="开始上传" ID="UploadButton"
                                OnClick="UploadButton_Click"></asp:Button></td>
                </tr>
            </table>
            <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>寻求解决办法。。 

解决方案 »

  1.   

    http://www.cnitblog.com/yemoo/archive/2007/10/11/34711.html
      

  2.   

    试试这个兼容代码
    /*兼容的在节点位置插入HTML代码的函数
    *where:插入在哪里,BeforeBegin表示插入在标签之前,AfterBegin表示插入在标签之后,BeforeEnd表示在标签结束前,AfterEnd表示在标签结束后
    * el:需要操作的节点
    * html:需要插入的HTML代码
    */
    function insertHtml(where, el, html)
    {
    where = where.toLowerCase();
        //IE
    if(el.insertAdjacentHTML)
    {
    switch(where)
    {
                case "beforebegin":
                    el.insertAdjacentHTML('BeforeBegin', html);
                    return el.previousSibling;
                case "afterbegin":
                    el.insertAdjacentHTML('AfterBegin', html);
                    return el.firstChild;
                case "beforeend":
                    el.insertAdjacentHTML('BeforeEnd', html);
                    return el.lastChild;
                case "afterend":
                    el.insertAdjacentHTML('AfterEnd', html);
                    return el.nextSibling;
            }
            throw '无效的位置"' + where + '"';
    }
        //Fifefox
    var range = el.ownerDocument.createRange();
        var frag;
    switch(where)
    {
    case "beforebegin":
                range.setStartBefore(el);
                frag = range.createContextualFragment(html);
                el.parentNode.insertBefore(frag, el);
                return el.previousSibling;
    case "afterbegin":
                if(el.firstChild){
                    range.setStartBefore(el.firstChild);
                    frag = range.createContextualFragment(html);
                    el.insertBefore(frag, el.firstChild);
                    return el.firstChild;
                }else{
                    el.innerHTML = html;
                    return el.firstChild;
                }
    case "beforeend":
                if(el.lastChild){
                    range.setStartAfter(el.lastChild);
                    frag = range.createContextualFragment(html);
                    el.appendChild(frag);
                    return el.lastChild;
                }else{
                    el.innerHTML = html;
                    return el.lastChild;
                }
    case "afterend":
                range.setStartAfter(el);
                frag = range.createContextualFragment(html);
                el.parentNode.insertBefore(frag, el.nextSibling);
                return el.nextSibling;
    }
            throw '无效的位置"' + where + '"';
    }
    //交换两个节点的位置
    function swapElement(id_1,id_2)
    {
    var insert = function(nodeInsert,nodeTo){
    if(nodeInsert.insertAdjacentElement)
    {
    nodeTo.insertAdjacentElement('beforeBegin',nodeInsert);
    }
    else
    {
    nodeTo.parentNode.insertBefore(nodeInsert,nodeTo);
    }
    }
    var tempObj= document.createElement("a"); 
    var t1 = document.getElementById(id_1);
    var t2 = document.getElementById(id_2);
    insert(tempObj,t2);
    insert(t2,t1);
    insert(t1,tempObj);
    document.body.removeChild(tempObj);
    }
      

  3.   

    Firefox不支持insertAdjacentHTML方法,需要进行兼容处理:
    function(){//insertAdjacentHTML by BlueDestiny ^_^
    if(document.body.insertAdjacentHTML){return;}
    HTMLElement.prototype.insertAdjacentHTML = function(sWhere, sHTML){
    var df = null,r = this.ownerDocument.createRange();
    switch (String(sWhere).toLowerCase()) {
    case "beforebegin":
    r.setStartBefore(this);
    df = r.createContextualFragment(sHTML);
    this.parentNode.insertBefore(df, this);
    break;
    case "afterbegin":
    r.selectNodeContents(this);
    r.collapse(true);
    df = r.createContextualFragment(sHTML);
    this.insertBefore(df, this.firstChild);
    break;
    case "beforeend":
    r.selectNodeContents(this);
    r.collapse(false);
    df = r.createContextualFragment(sHTML);
    this.appendChild(df);
    break;
    case "afterend":
    r.setStartAfter(this);
    df = r.createContextualFragment(sHTML);
    this.parentNode.insertBefore(df, this.nextSibling);
    break;
    }
    };
    }();
      

  4.   

    FireFox不支持insertAdjacentHTML方法,可以用楼上的方法,也可以改用appendChild()试试:
    <script language="Javascript">     
    var i = 0;
    function addFile() 

        i++;
        if ( i >=5 )
        return false  
        else 
        {
             var input = document.createElement("input");
             var br    = document.createElement("br");
             input.setAttribute("type","file");
             input.setAttribute("size","30");
             input.setAttribute("NAME","File");
             document.getElementById("MyFile").appendChild(input);
             document.getElementById("MyFile").appendChild(br);
        }
    }  
    </script>