@RequestMapping(value = “downland”)
@ResponseBody
public Object export(HttpServletRequest request, HttpServletResponse response) throws IOException {
//获取文件需要保存的新名字
String newFileName = request.getParameter("newFileName");
ServletOutputStream out = null;
FileInputStream ips = null;
try {
String url = WVSUtil.filePath + reportId + "." + format;
System.out.println(url);
//获取文件存放的路径
//原本文件存放的路径
File file = new File(url);
if (!file.exists()) {
//如果文件不存在就跳出
return ResultCodeUtil.errorResult("报告正在生成,请稍候", ResultCodeEnum.FAIL.getCode());
}
ips = new FileInputStream(file);
response.setContentType("multipart/form-data");
//为下载文件设置名字
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(newFileName.getBytes("UTF-8"), "ISO8859-1") + "\"");
//获取响应的输出流
out = response.getOutputStream();
//读取文件流
int len = 0;
byte[] buffer = new byte[1024 * 10];
while ((len = ips.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null && ips != null) {
out.close();
ips.close();
}
} catch (IOException e) {
System.out.println("关闭流出现异常");
e.printStackTrace();
}
}