|
发表于 2019-12-11 10:41:32
|
显示全部楼层
/UI2/system/service/report/printGetFile.j中调用的ReportHelper.getFile(request, response);方法的具体实现如下,可以自己重写去控制
- String filename = request.getParameter("filename");
- String reportName = URLEncoder.encode(request.getParameter("reportName"),"utf-8");
- String outputType = request.getParameter("outputType");
- OutputStream out = null;
- FileInputStream inputStream = null;
- try{
- //__check_ver2__
- File reportFile = new File(System.getProperty("java.io.tmpdir") + "/" + filename);
- inputStream = new FileInputStream(reportFile);
- response.setCharacterEncoding("UTF-8");
-
- String fileNameKey = "filename";
- UserAgent ua = com.justep.ui.util.NetUtils.getUserAgent(request);
- if(Browser.FIREFOX.equals(ua.getBrowser().getGroup())){
- fileNameKey = "filename*";
- }
-
- if("doc".equals(outputType)){
- response.setHeader("Cache-Control", "no-cache");
- response.setHeader("Content-Type", "application/ms-word");
- response.setHeader("Content-disposition", "attachment;"+fileNameKey+"=""+ reportName + """);
- }else if("xls".equals(outputType)){
- response.setHeader("Cache-Control", "no-cache");
- response.setHeader("Content-Type", "application/ms-excel");
- response.setHeader("Content-disposition", "attachment;"+fileNameKey+"=""+ reportName + """);
- }else if("preview".equals(outputType)){
- response.setHeader("Content-Type", "application/pdf");
- response.setHeader("Content-disposition", "inline;filename=""+ reportName + """);
- }else if("pdf".equals(outputType)){
- response.setHeader("Cache-Control", "no-cache");
- response.setHeader("Content-Type", "application/pdf");
- response.setHeader("Content-disposition", "attachment;"+fileNameKey+"=""+ reportName + """);
- }
- response.setHeader("Cache-Control", "pre-check=0, post-check=0, max-age=0");
-
- out = response.getOutputStream();
- byte[] bt = new byte[1024];
- int i = -1;
- while((i = inputStream.read(bt)) != -1){
- out.write(bt, 0, i);
- }
- out.flush();
- }finally{
- if(null!=inputStream) inputStream.close();
- if(null!=out) out.close();
- }
复制代码
|
|