-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathexport.jsp
More file actions
69 lines (62 loc) · 3.24 KB
/
Copy pathexport.jsp
File metadata and controls
69 lines (62 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<%@page import="org.apache.poi.hssf.usermodel.*" %><%@page import="com.cubewise.rest.api.pojo.ExportRequest"%><%@page import="java.io.*" %><%
try{
org.apache.log4j.Logger logger = org.apache.log4j.LogManager.getLogger("ExportService");
// get file/export info
ExportRequest exportRequest = (ExportRequest)request.getSession(false).getAttribute("export");
request.getSession(false).setAttribute("export", null); // clear contents from session to prevent reuse
logger.debug("exportRequest retrieved: " + exportRequest);
if(exportRequest != null){
// Excel
if(exportRequest.getOutput().trim().equalsIgnoreCase("excel")){
HSSFWorkbook workbook = (HSSFWorkbook)request.getSession(false).getAttribute("export-excel");
// write it as an excel attachment
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
workbook.write(outByteStream);
workbook.close();
byte [] outArray = outByteStream.toByteArray();
response.setContentType("application/ms-excel");
response.setContentLength(outArray.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition", "attachment; filename=" + exportRequest.getFile() + ".xls");
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
outStream.close();
}
else if(exportRequest.getOutput().trim().equalsIgnoreCase("csv")){
StringBuffer sbCsv = (StringBuffer)request.getSession(false).getAttribute("export-csv");
response.setContentType("text/csv");
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition", "attachment; filename=\"" + exportRequest.getFile() + ".csv\"");
OutputStream outStream = response.getOutputStream();
outStream.write(sbCsv.toString().getBytes());
outStream.flush();
outStream.close();
}
else{
response.setContentType("text/html");
response.setHeader("Expires:", "0"); // eliminates browser caching
OutputStream outStream = response.getOutputStream();
outStream.write(("<h1>Unsupported Export Format - " + exportRequest.getOutput().trim() + "</h1>").getBytes());
outStream.flush();
outStream.close();
}
}
else{
response.setContentType("text/html");
response.setHeader("Expires:", "0"); // eliminates browser caching
OutputStream outStream = response.getOutputStream();
outStream.write("<h1>Invalid Export.</h1>".getBytes());
outStream.flush();
outStream.close();
}
}
catch(Exception ex){
response.setContentType("text/html");
response.setHeader("Expires:", "0"); // eliminates browser caching
OutputStream outStream = response.getOutputStream();
outStream.write("<h1>Error Exporting Contents. Check Logs.</h1>".getBytes());
outStream.flush();
outStream.close();
}
%>