java导出静态页面html文件zip

来源:互联网 发布:澳洲旅游手信 知乎 编辑:程序博客网 时间:2024/04/28 06:26
导出图片、PDF、PPT、动态图册文件1、导出按钮 html        <div class="btn-group">            <a type="button" title="{{{true:'导出动态图册', false:'金会员特权:导出动态图册'}[isHtmlExport()]}}" class="btn no-border cs-btn-toolbar" ng-click="exportHtmlZip()" > <i class="icon-html"></i></a>        </div>2、导出按钮 js        pdfManager.exportHtmlZip($scope.chartBookData.id,$scope.pagesTotalCount).then(function(meg){            toaster.clear(null, 'export');            toaster.pop('success', '', '导出动态图册成功');            $scope.exportPDFFlag=true;        },function(err){            toaster.clear(null, 'export');            toaster.pop('error', '', '导出动态图册失败');            $scope.exportPDFFlag=true;        });        exportHtmlZip:function(chartBookId,pageCount){                var defer = $q.defer();                var isIe=false;                if(navigator.userAgent.indexOf("MSIE") > 0||navigator.userAgent.indexOf("rv:11.0")>0){                    isIe=true;                }                var url = charts_server + '/service/export/gethtmlzip';                var form = document.createElement('form');                form.action = url;                form.target = '_self';                form.method = 'post';                var input0 = document.createElement('input');                input0.type = 'hidden';                input0.name = 'file';                input0.value = chartBookId;                form.appendChild(input0);                var input1 = document.createElement('input');                input1.type = 'hidden';                input1.name = 'isIe';                input1.value = isIe;                form.appendChild(input1);                document.body.appendChild(form);                form.submit();                document.body.removeChild(form);                return defer.promise;            }3、 后端接受请求 java    //动态html压缩包    @RequestMapping(value = "/export/gethtmlzip", method = RequestMethod.POST)    public RestResult getHtmlZip(HttpServletRequest request, HttpServletResponse response) throws MalformedURLException {        String tmpHtmlPath = null;        try {            String chartBookId=request.getParameter("file");            response.setContentType("application/zip");            ChartBookVO data = chartingManager.getChartBook(chartBookId);//获取图册模型            String exportName = data.getName();             String isIe=request.getParameter("isIe");            if("true".equals(isIe)){                exportName= java.net.URLEncoder.encode(exportName, "UTF-8");                    exportName = exportName.replace( "+", "%20");//替换空格                }else{                exportName=new String(exportName.getBytes("utf-8"),                        "iso8859-1");            }            response.setHeader("Content-Disposition", "attachment; filename="                    + exportName + ".zip");            //response.setHeader("Content-Disposition", "attachment; filename=tubiaoxiu.zip");            OutputStream os = response.getOutputStream();            //html模板路径,下载html路径            String templatePath = request.getRealPath("/WEB-INF/htmlcode");             String pt = "tbx-html-" + UUID.randomUUID();            String tmpRoot = System.getProperty("java.io.tmpdir");                      File file = new File(tmpRoot+File.separator+pt);            file.mkdir();            tmpHtmlPath = file.getAbsolutePath();            ExportHtml.copyFolderWithSelf(templatePath,tmpHtmlPath);            List<ThemeDataVO> themeData = chartingManager.getThemeData(chartBookId);            String themeDataStr = mapper.writeValueAsString(themeData);            ExportHtml.downloadBookTheme(themeDataStr,tmpHtmlPath); //下载图册模型到js文件            String bookDataStr = mapper.writeValueAsString(data);//获取图册模型字符串            ChartBookVO bookModuleData = mapper.readValue(bookDataStr, ChartBookVO.class);//另存一个图册模型            ChartBookVO bookModuleDataUpdate = ExportHtml.updateChartBook(bookModuleData,tmpHtmlPath);//获取图片和图表资源,修改图片路径            String bookDataStrDownload = mapper.writeValueAsString(bookModuleDataUpdate);            ExportHtml.downloadBookModule(bookDataStrDownload,tmpHtmlPath); //下载图册模型到js文件            ExportHtml.zipMultiFile(tmpHtmlPath, os, true);            return null;        } catch (Throwable e) {            logger.error(e.getMessage(), e);            if (e instanceof BaseCSException) {                return new RestResult((BaseCSException) e);            } else {                return new RestResult("html下载失败!");            }        } finally {            if (tmpHtmlPath != null) {                ExportHtml.deleteDir(new File(tmpHtmlPath));            }        }    }           
原创粉丝点击