博客
关于我
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/

你可能感兴趣的文章
pg数据库中两个字段相除
查看>>
PhalApi:[1.23] 请求和响应:GET和POST两者皆可得及超越JSON格式返回
查看>>
Phalcon环境搭建与项目开发
查看>>
Phantom.js维护者退出,项目的未来成疑
查看>>
Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容
查看>>
Phaser性能测试加强版
查看>>
phoenix 开发API系列(一)创建简单的http api
查看>>
Phoenix 查看表信息及修改元数据
查看>>
phoenixframework集成了所有自动化测试的思想的平台。mark一下。
查看>>
phoenix_执行sql报错_Error: ERROR 504 (42703): Undefined column. columnName=(state=4270_大数据工作笔记0181
查看>>
phoenix启动失败_The history file `/root/.sqlline/history` may be an older history---记录024_大数据工作笔记0184
查看>>
Phoenix基础命令_视图映射和表映射_数字存储问题---大数据之Hbase工作笔记0036
查看>>
phoenix无法连接hbase shell创建表失败_报错_PleaseHoldException: Master is initializing---记录020_大数据工作笔记0180
查看>>
Phoenix简介_安装部署_以及连接使用---大数据之Hbase工作笔记0035
查看>>
phoenix连接hbase报错Can not resolve hadoop120, please check your network_记录026---大数据工作笔记0187
查看>>
Photoshop工作笔记001---Photoshop常用快捷键总结
查看>>
photoshop智能参考线
查看>>
Reids配置文件redis.conf中文详解
查看>>
Photoshop脚本入门
查看>>
PHP
查看>>