none
如何在asp.net中实现整个文件夹上传的功能 ??? RRS feed

答案

  • 你好 据我所知,在html和浏览器中中目前无法实现此功能,因为要上传哪些文件到服务器是由客户端选择的
    可以尝试通过js创建var fso = new ActiveXObject("Scripting.FileSystemObject");对象
    fso = new ActiveXObject("Scripting.FileSystemObject");
       f = fso.GetFolder(folderspec);
       fc = new Enumerator(f.files);
    然后将这个文件夹下的每个file添加到页面的Html input upload控件中

    在服务器端通过Request.Files来逐个保存
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已建议为答案 mldark 2009年9月19日 5:05
    • 已标记为答案 KeFang Chen 2009年9月21日 2:28
    2009年9月19日 4:23
    版主
  • 如果你只支持IE的话,你需要自己写一个然后用你的网站的名义签名,别人写的一般不能用。
    FF里面需要编写浏览器扩展,可以去FF讨论去讨论
    其他浏览器未必支持扩展,比如Google Chrome默认就不支持,这样就无法实现你所需要的功能。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年9月19日 6:29
    版主
  • 还可以使用
    URL Protocol Handler

    点击上传可以调用本地的程序进行上传,这样就可以上传文件夹了。

    更多信息可以搜索

    URL Protocol Handler
    【孟子E章】
    2009年9月19日 8:34
    版主
  • asp.net 默认是不支持这样的功能的,你只有自己编写 ActiveX 控件来实现这样的功能。
    知识改变命运,奋斗成就人生!
    • 已建议为答案 mldark 2009年9月19日 5:05
    • 已标记为答案 KeFang Chen 2009年9月21日 2:28
    2009年9月19日 5:03
    版主

全部回复

  • 你好 据我所知,在html和浏览器中中目前无法实现此功能,因为要上传哪些文件到服务器是由客户端选择的
    可以尝试通过js创建var fso = new ActiveXObject("Scripting.FileSystemObject");对象
    fso = new ActiveXObject("Scripting.FileSystemObject");
       f = fso.GetFolder(folderspec);
       fc = new Enumerator(f.files);
    然后将这个文件夹下的每个file添加到页面的Html input upload控件中

    在服务器端通过Request.Files来逐个保存
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已建议为答案 mldark 2009年9月19日 5:05
    • 已标记为答案 KeFang Chen 2009年9月21日 2:28
    2009年9月19日 4:23
    版主
  • asp.net 默认是不支持这样的功能的,你只有自己编写 ActiveX 控件来实现这样的功能。
    知识改变命运,奋斗成就人生!
    • 已建议为答案 mldark 2009年9月19日 5:05
    • 已标记为答案 KeFang Chen 2009年9月21日 2:28
    2009年9月19日 5:03
    版主
  • 您好,如版主所说无法直接实现,我个人思路请参考:
    1、在上传之前先将文件夹压缩,使用GZipStream 对文件夹压缩。请参考:http://blog.csdn.net/iStarSoft/archive/2008/08/26/2830239.aspx 或是msdn

    2、将压缩后的文件上传

    3、在服务端解压。

    此外还需注意处理文件名冲突等细节问题。
    2009年9月19日 5:23
    版主
  • 有没有 现成的控件 阿 ? 


    少悲切,勿徘徊。。。
    2009年9月19日 5:31
  • 老大, 是asp.net阿 
    上传的文件 在客户端      

    怎么压缩客户端的文件阿   ?


    少悲切,勿徘徊。。。
    2009年9月19日 6:24
  • 如果你只支持IE的话,你需要自己写一个然后用你的网站的名义签名,别人写的一般不能用。
    FF里面需要编写浏览器扩展,可以去FF讨论去讨论
    其他浏览器未必支持扩展,比如Google Chrome默认就不支持,这样就无法实现你所需要的功能。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年9月19日 6:29
    版主
  • 真得自己写阿       
    少悲切,勿徘徊。。。
    2009年9月19日 6:40
  • 没写过 
       谁有类似的  
    可参考的     发个看看阿  


    少悲切,勿徘徊。。。
    2009年9月19日 6:43
  • 还可以使用
    URL Protocol Handler

    点击上传可以调用本地的程序进行上传,这样就可以上传文件夹了。

    更多信息可以搜索

    URL Protocol Handler
    【孟子E章】
    2009年9月19日 8:34
    版主
  • 网上有一个Web大文件上传控件:Xproer.HttpUploader6 它可以上传文件夹(包含层级结构),上传超大文件(支持断点续传),文件MD5验证(文件秒传),支持WINDOWS平台下的所有主流浏览器:IE 6(x86),IE 7(x86),IE 8(x86),IE 9(x86,x64),IE 10(x86,x64),IE 11(x86,x64), Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,360极速浏览器,搜狗浏览器,Firefox,Chrome,Opera 23。上传文件夹

    上传文件夹

    上传前-客户端文件层级结构:

    客户端文件层级结构:

    上传后-服务端文件夹层级结构:

    服务端文件夹层级结构:

    粘贴文件,简化选择文件操作:

    粘贴文件,简化选择文件操作:

    文件MD5值计算进度:

    文件MD5值计算进度:

    文件MD5值计算完毕

    文件MD5值计算完毕

    服务器根据MD5检测是否存在相同文件

    服务器根据MD5检测是否存在相同文件

    续传文件

    续传文件

    从服务器加载文件列表

    从服务器加载文件列表

    文件上传中

    文件上传中

    文件上传完毕

    文件上传完毕

    与Discuz!X2整合-后台安装断点续传控件

    与Discuz!X2整合-后台安装断点续传控件

    与Discuz!X2整合-后台启用断点续传控件

    与Discuz!X2整合-后台启用断点续传控件

    与Discuz!X2整合-后台断点续传控件启用成功

    与Discuz!X2整合-后台断点续传控件启用成功

    与Discuz!X2整合-前台发帖页面

    与Discuz!X2整合-前台发帖页面

    与Discuz!X2整合-上传

    与Discuz!X2整合-上传

    页面调用示例代码:
    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>HttpUploader6演示页面</title>
        <link type="text/css" href="css/HttpUploader.css" rel="Stylesheet"/>
        <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
        <script type="text/javascript" src="js/HttpUploader.js" charset="utf-8"></script>
        <script language="javascript" type="text/javascript">
            var cbMgr = new HttpUploaderMgr();
        	$(document).ready(function ()
        	{
        		cbMgr.LoadTo("FilePanel");
        		cbMgr.Init();
        		cbMgr.SetupCheck(); //安装检查
    
    			//取MAC地址
        		//var mac = cbMgr.Browser.GetMacs();
        		//alert(mac[0]);
    
        		//上传指定目录下的所有文件
        	    //cbMgr.Browser.GetFiles("F:\\ftp\\", false);
        	});
        </script>
    </head>
    <body>
        <div id="msg"></div>
    	<div id="FilePanel"></div>
    </body>
    </html>


    资源下载:

    cab安装包(x86)
    cab安装包(x64)
    crx安装包
    xpi插件安装包
    exe安装包
    开发文档
    升级日志

    DEMO下载:

    ASP.NET示例
    JSP-ACCESS示例
    JSP-SQL2005示例
    JSP-MySQL示例
    JSP-Oracle示例
    PHP-MySQL示例
    2014年9月25日 9:24