@Controller
@RequestMapping("/reports")
public class ReportDownloadController extends BaseController
{
@Value("${exportPath}")
public String reportPath;
@RequestMapping(value = "download")
public void downloadReport( String reportName , final HttpServletResponse response ) throws Exception
{
String fileName = null;
int inputBufferSize = 1024;
int outputBufferSize = 1024;
byte[] buff = new byte[outputBufferSize];
BufferedInputStream inp = null;
ServletOutputStream out = null;
if (reportName.endsWith("xml") || reportName.endsWith("XML"))
{
try
{
fileName = reportPath + "/" + reportName;
response.setContentType("text/xml;charset=UTF-8");
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition","attachment; filename=\"" + reportName + "\"");
out = response.getOutputStream();
inp = new BufferedInputStream(new FileInputStream(fileName), inputBufferSize);
for (int len = -1; (len = inp.read(buff, 0, buff.length)) != -1;)
{
out.write(buff, 0, len);
}
}
catch (Exception e)
{
throw new ServletException(e);
}
finally
{
if (inp != null)
{
inp.close();
}
if (out != null)
{
out.close();
}
}
}
else
{
try
{
fileName = reportPath + "/" + reportName;
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition","attachment; filename=\"" + reportName + "\"");
out = response.getOutputStream();
inp = new BufferedInputStream(new FileInputStream(fileName), inputBufferSize);
for (int len = -1; (len = inp.read(buff, 0, buff.length)) != -1;)
{
out.write(buff, 0, len);
}
}
catch (Exception e)
{
throw new ServletException(e);
}
finally
{
if (inp != null)
{
inp.close();
}
if (out != null)
{
out.close();
}
}
}
}
@RequestMapping("/reports")
public class ReportDownloadController extends BaseController
{
@Value("${exportPath}")
public String reportPath;
@RequestMapping(value = "download")
public void downloadReport( String reportName , final HttpServletResponse response ) throws Exception
{
String fileName = null;
int inputBufferSize = 1024;
int outputBufferSize = 1024;
byte[] buff = new byte[outputBufferSize];
BufferedInputStream inp = null;
ServletOutputStream out = null;
if (reportName.endsWith("xml") || reportName.endsWith("XML"))
{
try
{
fileName = reportPath + "/" + reportName;
response.setContentType("text/xml;charset=UTF-8");
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition","attachment; filename=\"" + reportName + "\"");
out = response.getOutputStream();
inp = new BufferedInputStream(new FileInputStream(fileName), inputBufferSize);
for (int len = -1; (len = inp.read(buff, 0, buff.length)) != -1;)
{
out.write(buff, 0, len);
}
}
catch (Exception e)
{
throw new ServletException(e);
}
finally
{
if (inp != null)
{
inp.close();
}
if (out != null)
{
out.close();
}
}
}
else
{
try
{
fileName = reportPath + "/" + reportName;
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition","attachment; filename=\"" + reportName + "\"");
out = response.getOutputStream();
inp = new BufferedInputStream(new FileInputStream(fileName), inputBufferSize);
for (int len = -1; (len = inp.read(buff, 0, buff.length)) != -1;)
{
out.write(buff, 0, len);
}
}
catch (Exception e)
{
throw new ServletException(e);
}
finally
{
if (inp != null)
{
inp.close();
}
if (out != null)
{
out.close();
}
}
}
}