当前位置: 代码迷 >> .NET组件控件 >> 求asp.net(C#)自个儿编写的多文件上传控件
  详细解决方案

求asp.net(C#)自个儿编写的多文件上传控件

热度:179   发布时间:2016-05-04 23:22:59.0
求asp.net(C#)自己编写的多文件上传控件
现正在用asp.net写一个文件上传网页,一次可能要上传多个文件或文件夹,vs2008里面的控件fileupload或input(file)一次只能上传一个,所以想求一个点击浏览弹出文件对话框后能同时选中多个文件的控件。或者告诉我怎样对fileupload控件进行改写。在下拙劣,还请各位高手耐心的不吝赐教。先谢过了。。。
------解决方案--------------------
这个一次也是只能选中一个,但是可以上传多个

<script type="text/javascript">
    var fileId=1;
    function addFile()
    {
     var FilesDiv = document.getElementById('FilesDiv');
    
     var divId="div"+fileId;
     var str = '<div id="'+divId+'">';
     str +='<input type="file" size="40" name="File" style="border: solid 1px #0077B2">'
     str += '&nbsp;<img src="../images/icon_stop.gif" onclick="delFile(\'' + divId + '\')"/>';
     str +="<div>";
     FilesDiv.insertAdjacentHTML("beforeEnd",str)
     fileId++;
    }
    
    function delFile(obj)
    {
        var FilesDiv = document.getElementById('FilesDiv');
        var elem = document.getElementById(obj);
        FilesDiv.removeChild(elem);
    }

    function Sub() {
        var len = document.getElementById('FilesDiv').getElementsByTagName('input');
        if (len.length!=0) {
            for (var i = 0; i < len.length; i++) {
                if (len[i].type == "file") {
                    if (len[i].value == "") {
                        alert('请选择要上传的附件!');
                        return false;
                    }
                }
            }
        }
        else {
            alert('请选择要上传的附件!');
            return false;
        }
    }
    </script>
     <div id="FilesDiv">
           <div id="div0">
            <input type="file" runat="server" size="40" name="File" id="file0" style="border: solid 1px #0077B2">&nbsp;<img
                                src="../images/icon_stop.gif" onclick="delFile('div0')" />
        </div>
     </div>
          <input type="button" value="添加附件" onclick="addFile();return false" id="btnInput" runat="server" />
            <asp:Button ID="btnUpload" runat="server" Text="上传附件" OnClick="btnUpload_Click"  OnClientClick="return Sub();"/><P>
               </P> 





服务端去循环  files 
HttpFileCollection files = HttpContext.Current.Request.Files;
------解决方案--------------------
可以用Xproer.HttpUploader此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



------解决方案--------------------
这个功能的例子网上有很多的
  相关解决方案