博客
关于我
zip文件上传、解压
阅读量:177 次
发布时间:2019-02-28

本文共 6255 字,大约阅读时间需要 20 分钟。

public synchronized void backUp(HttpServletRequest request, HttpServletResponse response) throws Exception {    String data = "许可无效!";    if (!MapAccessBean.getIsValid()) {        response.setContentType("text/html;charset=UTF-8");        data = "";        System.out.println("key01" + data);        response.getWriter().print(data);        return;    }    if (!("on".equals(request.getParameter("KMLModel")) && "on".equals(request.getParameter("lic")))) {        data = "请勾选需要还原的文件!";        response.setContentType("text/html;charset=UTF-8");        data = "";        response.getWriter().print(data);        return;    }    final String KMLModel = GetRealPath.getRootPath() + File.separator + "KmlModel";    final String images = GetRealPath.getRootPath() + File.separator + "images";    final String layerTree = GetRealPath.getRootPath() + File.separator + "tree.xml";    final String lic = GetRealPath.getRootPath() + File.separator + "sysconfig";    String filePath = tempPath + File.separator + "backUp.zip";    File f = new File(tempPath);    if (!f.exists()) {        f.mkdir();    }    f = new File(filePath);    if (f.exists()) {        f.delete();    }    ZipFile zipFile = new ZipFile(filePath);    ZipParameters parameters = new ZipParameters();    parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);    parameters.setEncryptFiles(true);    parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);    parameters.setPassword("!@#$%^&*()");    parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);    if ("on".equals(request.getParameter("KMLModel"))) {        f = new File(KMLModel);        if (!f.exists()) {            f.mkdir();        }        zipFile.addFolder(KMLModel, parameters);        zipFile.addFolder(images, parameters);        zipFile.addFile(new File(layerTree), parameters);    }    if ("on".equals(request.getParameter("lic"))) {        f = new File(lic);        String[] filelist = f.list();        if (filelist != null) {            for (String fileName : filelist) {                if (fileName.lastIndexOf(".lic") != -1) {                    zipFile.addFile(new File(lic + fileName), parameters);                }            }        }    }    if (!zipFile.isValidZipFile()) {        throw new ZipException("压缩文件不合法,可能被损坏.");    }    response.reset();    response.setContentType("application/zip");    response.setHeader("Content-Disposition", "attachment; filename=backUp.zip");    try {        java.io.FileInputStream in = new java.io.FileInputStream(filePath);        byte[] b = new byte[512];        ServletOutputStream o = response.getOutputStream();        while (-1 != (bytesRead = in.read(b, 0, b.length))) {            o.write(b, 0, bytesRead);        }        in.close();        o.close();        response.flushBuffer();    } catch (IOException e) {        in.close();        System.out.println(e.getMessage());    } catch (Exception e) {        System.out.println(e.getMessage());    } finally {        // o.close();        // if (o != null) {        // o.close();        // }        // if (in != null) {        // in.close();        // }    }    try {        File f2 = new File(filePath);        if (f2.exists()) {            f2.delete();        }    } catch (Exception e) {        e.printStackTrace();    }}
public ModelAndView restore(HttpServletRequest request, HttpServletResponse response) throws Exception {    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName("backUpAndRestore");    File f = new File(tempPath);    System.out.println("tempPath:" + tempPath);    if (!f.exists()) {        f.mkdir();    }    String data = "许可无效!";    FileItemFactory factory = new DiskFileItemFactory();    ServletFileUpload upload = new ServletFileUpload(factory);    HashMap params = new HashMap();    try {        List items = upload.parseRequest(request);        for (Iterator it = items.iterator(); it.hasNext();) {            FileItem fileItem = (FileItem) it.next();            if (fileItem.isFormField()) {                try {                    params.put(fileItem.getFieldName(), fileItem.getString("UTF-8"));                } catch (UnsupportedEncodingException e) {                    e.printStackTrace();                }            } else {                String fileName = fileItem.getName();                if (!fileName.endsWith(".zip")) {                    try {                        throw new Exception(Catalog.getLocalizationForKey("KmlController.ZIPAllowed"));                    } catch (Exception e) {                        e.printStackTrace();                    }                }                File file = new File(tempPath, "restore.zip");                try {                    fileItem.write(file);                } catch (Exception e1) {                    e1.printStackTrace();                }                ZipFile zipFile = new ZipFile(file);                if (!zipFile.isValidZipFile()) {                    try {                        throw new ZipException("压缩文件不合法,可能被损坏.");                    } catch (ZipException e) {                        data = "1";                        modelAndView.addObject("message", data);                        return modelAndView;                    }                }                if (zipFile.isEncrypted()) {                    zipFile.setPassword("!@#$%^&*()");                    zipFile.extractAll(GetRealPath.getRootPath());                } else {                    data = "2";                    modelAndView.addObject("message", data);                    return modelAndView;                }            }        }    } catch (FileUploadException e1) {        e1.printStackTrace();    }    if (!MapAccessBean.getIsValid()) {        data = "4";        modelAndView.addObject("message", data);        return modelAndView;    } else {        modelAndView.addObject("message", Catalog.getLocalizationForKey("KmlController.restorSuccess"));        if ("on".equals(params.get("checkURL"))) {            try {                kmlService.checkIconUrl(request.getServerName() + ":" + request.getServerPort());            } catch (Exception e) {                e.printStackTrace();            }        }        SysConfig.getInstance().init();    }    return modelAndView;}

转载地址:http://dwvj.baihongyu.com/

你可能感兴趣的文章
Objective-C实现countSetBits设置位的数量算法(附完整源码)
查看>>
Objective-C实现currency converter货币换算算法(附完整源码)
查看>>
Objective-C实现cycle sort循环排序算法(附完整源码)
查看>>
Objective-C实现data transformations数据转换算法(附完整源码)
查看>>
Objective-C实现datamatrix二维码识别 (附完整源码)
查看>>
Objective-C实现DateToDay 方法算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现DBSCAN聚类算法(附完整源码)
查看>>
Objective-C实现decision tree决策树算法(附完整源码)
查看>>
Objective-C实现degreeToRadian度到弧度算法(附完整源码)
查看>>
Objective-C实现depth first search深度优先搜索算法(附完整源码)
查看>>
Objective-C实现DES和3DES加解密算法(附完整源码)
查看>>
Objective-C实现des文件加密算法(附完整源码)
查看>>
Objective-C实现detectDirectedCycle检测定向循环算法(附完整源码)
查看>>
Objective-C实现detectUndirectedCycle检测无向循环算法(附完整源码)
查看>>
Objective-C实现deutsch jozsa算法(附完整源码)
查看>>
Objective-C实现DFS判断是否是二分图Bipartite算法(附完整源码)
查看>>
Objective-C实现DFS遍历或搜索图数据结构算法(附完整源码)
查看>>
Objective-C实现Diffie-Hellman算法(附完整源码)
查看>>
Objective-C实现Diffie—Hellman密钥交换(附完整源码)
查看>>