ExtJS 2.2 开源网络硬盘系统

[ 27811 / 287 / 38 ]

技术架构:Struts2(json-plugin) + Spring2 + ExtJS2.2  无数据库。

已经实现的功能:
1.多文件队列批量上传,友好的上传进度条,完整的上传进度信息.
2.实现了文件在线压缩解压功能(可以压缩成zip格式,可以直接解压缩RAR文件格式)
3.实现了新建文件夹,以及删除文件和文件夹.

存在的问题:删除文件有时候会异常.

注意,tomcat(server.xml)最好能设置一下URIEncoding

Xml代码
  1.   1. <Connector port="8080" maxHttpHeaderSize="8192" 
  2.   2.                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
  3.   3.                enableLookups="false" redirectPort="8443" acceptCount="100" 
  4.   4.                connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="UTF-8"/> 

  5. <Connector port="8080" maxHttpHeaderSize="8192"
  6.               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  7.               enableLookups="false" redirectPort="8443" acceptCount="100"
  8.               connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="UTF-8"/>
复制代码
删除文件的地方小改了一下,原先引起的错误是文件资源在内存中还未释放掉,就试行把文件删除,虽说有file=null,但这样的删除结果是有时候行有时候就不行,GC没及时调那资源就不会释放掉的。

Java 代码
  1.   1.    /**
  2.   2.      * 多文件删除
  3.   3.      * 
  4.   4.      * @return
  5.   5.      */ 
  6.   6.    public String deleteFiles() { 
  7.   7.        String rootPath = getSession().getServletContext().getRealPath("/"); 
  8.   8.        rootPath += ROOT; 
  9.   9. //      File file = new File(rootPath); 
  10.   10.        //为什么此处要判断不存在就创建?? 
  11.   11. //      if(!file.exists()){ 
  12.   12. //          file.mkdirs(); 
  13.   13. //      } 
  14.   14. //      file = null; 
  15.   15.        boolean flag = false; 
  16.   16.        try { 
  17.   17.            for (String path : paths) { 
  18.   18. //              file = new File(rootPath + path); 
  19.   19.                flag = MyUtils.delFiles(rootPath + path); 
  20.   20.                if (!flag) { 
  21.   21.                    break; 
  22.   22.                } 
  23.   23.            } 
  24.   24.        } catch (RuntimeException e) { 
  25.   25.            flag = false; 
  26.   26.            e.printStackTrace(); 
  27.   27.        } 
  28.   28. //      finally { 
  29.   29. //          file = null; 
  30.   30. //      } 
  31.   31.        setSuccess(flag); 
  32.   32.        return SUCCESS; 
  33.   33.    } 

  34.         /**
  35.         * 多文件删除
  36.         *
  37.         * @return
  38.         */
  39.         public String deleteFiles() {
  40.                 String rootPath = getSession().getServletContext().getRealPath("/");
  41.                 rootPath += ROOT;
  42. //                File file = new File(rootPath);
  43.                 //为什么此处要判断不存在就创建??
  44. //                if(!file.exists()){
  45. //                        file.mkdirs();
  46. //                }
  47. //                file = null;
  48.                 boolean flag = false;
  49.                 try {
  50.                         for (String path : paths) {
  51. //                                file = new File(rootPath + path);
  52.                                 flag = MyUtils.delFiles(rootPath + path);
  53.                                 if (!flag) {
  54.                                         break;
  55.                                 }
  56.                         }
  57.                 } catch (RuntimeException e) {
  58.                         flag = false;
  59.                         e.printStackTrace();
  60.                 }
  61. //                finally {
  62. //                        file = null;
  63. //                }
  64.                 setSuccess(flag);
  65.                 return SUCCESS;
  66.         }
复制代码
改下回调的方法
Java 代码
  1.   1.    /**
  2.   2.      * 删除指定文件路径下面的所有文件和文件夹
  3.   3.      * 
  4.   4.      * @param file
  5.   5.      */ 
  6.   6.    public static boolean delFiles(String fileName) { 
  7.   7.        boolean flag = false; 
  8.   8.        try { 
  9.   9.            File file = new File(fileName); 
  10.   10.            if (file.exists()) { 
  11.   11.                if (file.isDirectory()) { 
  12.   12.                    String[] contents = file.list(); 
  13.   13.                    for (int i = 0; i < contents.length; i++) { 
  14.   14.                        delFiles(file.getAbsolutePath() + "/" + contents); 
  15.   15. //                      File file2X = new File(file.getAbsolutePath() + "/" + contents); 
  16.   16. //                      if (file2X.exists()) { 
  17.   17. //                          if (file2X.isFile()) { 
  18.   18. //                              flag = file2X.delete(); 
  19.   19. //                          } else if (file2X.isDirectory()) { 
  20.   20. //                              delFiles(file2X); 
  21.   21. //                          } 
  22.   22. //                      } else { 
  23.   23. //                          throw new RuntimeException("File not exist!"); 
  24.   24. //                      } 
  25.   25.                    } 
  26.   26.                } 
  27.   27.                flag = file.delete(); 
  28.   28.            } else { 
  29.   29.                throw new RuntimeException("File not exist!"); 
  30.   30.            } 
  31.   31.        } catch (Exception e) { 
  32.   32.            flag = false; 
  33.   33.            e.printStackTrace(); 
  34.   34.        } 
  35.   35.        return flag; 
  36.   36.    }
复制代码
系统截图:
ExtJS 2.2 开源网络硬盘系统_24736

ExtJS 2.2 开源网络硬盘系统_24737

ExtJS 2.2 开源网络硬盘系统_24738

ExtJS 2.2 开源网络硬盘系统_24739

源码下载:
附件: 亲,您没有权限下载或查看附件喔:-) 马上登录注册吧!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP

深情顶帖,楼主加油!
TOP