首页>代码>springMVC+Mybatis+Spring+Easyui+zTree+ueditor+highchart企业IT信息管理系统>/IT_M - 副本/src/com/gree/ssm/controller/ExportController.java
package com.gree.ssm.controller; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import com.gree.ssm.util.MyConverter; /** * 导出highcharts图片 * * @author Administrator * */ @Controller @RequestMapping("export/") public class ExportController { @RequestMapping("/open3D") public String open3D(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception { // 页面转发 return "3D"; } // 导出函数 @RequestMapping("/export") public void export(String filename, HttpServletRequest request, HttpServletResponse response, String type, String svg, float scale) throws Exception { /** * 第二步:将svg代码保存为svg文件 */ // 打印获取的参数,确保可以获取值且中文不会乱码,如果出现乱码,将Highcharts页面的编码设置为UTF-8 System.out.println(type + "\n" + filename + "\n" + svg + "\n" + scale); // 获取项目的绝对路径 @SuppressWarnings("deprecation") String WebRoot = request.getRealPath("") + "\\temp\\"; File file = new File(WebRoot); // 判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdirs();// 创建多级目录 // file.mkdir();//创建目录 } // SVG临时文件名 String temp = WebRoot + System.currentTimeMillis() + (int) (Math.random() * 1000) + ".svg"; // 将svg代码写入到临时文件中,文件后缀的.svg File svgTempFile = new File(temp); // 写入文件,注意文件编码 OutputStreamWriter svgFileOsw = new OutputStreamWriter( new FileOutputStream(svgTempFile), "UTF-8"); svgFileOsw.write(svg); svgFileOsw.flush(); svgFileOsw.close(); /** * 第三步:调用转换函数,生成目标文件 */ MyConverter mc = new MyConverter(); // 调用转换函数,返回目标文件名 filename = mc.conver(temp, WebRoot, type); // 读取目标文件流,转换调用下载 File resultFile = new File(WebRoot + filename); FileInputStream resultFileFi = new FileInputStream(resultFile); long l = resultFile.length(); int k = 0; byte abyte0[] = new byte[65000]; /** * 第四步:调用浏览器下载 */ // 调用下载 response.setContentType("application/x-msdownload"); response.setContentLength((int) l); response.setHeader("Content-Disposition", "attachment; filename=" + filename); while ((long) k < l) { int j; j = resultFileFi.read(abyte0, 0, 65000); k += j; response.getOutputStream().write(abyte0, 0, j); } resultFileFi.close(); // 转换成功后,删除临时文件 svgTempFile.delete(); resultFile.delete(); } }
最近下载更多
zhaoyangwfd LV17
2022年1月20日
wanglinddad LV55
2022年1月19日
543666826 LV33
2021年11月18日
2231788897 LV6
2021年10月20日
lewis365 LV2
2021年8月22日
ericxu1116 LV24
2021年6月7日
幸运疯子 LV13
2021年5月16日
小屁孩 LV7
2021年4月11日
skipple3 LV39
2020年11月26日
ddqddqddq LV14
2020年9月5日