模板下载
一、control层
@ApiOperation(value = "excel模板下载", notes = "")
@GetMapping("/download")
@Log(action = "excel模板下载")
public ResponseInfo download(HttpServletResponse response, HttpServletRequest request) {
pictureService.downLoad(response,request);
return ResponseInfo.ok();
}
二、service层
void downLoad(HttpServletResponse response, HttpServletRequest request);
三、seviceImpl层
@Override
public void downLoad(HttpServletResponse response, HttpServletRequest request) {
//获取输入流,原始模板位置
String filePath = getClass().getResource("/").getPath() + "template/人员模板.xlsx";
InputStream bis = null;
BufferedOutputStream out = null;
//假如以中文名下载的话,设置下载文件名称
String filename = "导入模板.xlsx";
try {
bis = new BufferedInputStream(new FileInputStream(new File(filePath)));
//设置编码格式
filename = URLEncoder.encode(filename, "utf-8");
//设置文件下载头
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
//1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
out = new BufferedOutputStream(response.getOutputStream());
int len = 0;
while ((len = bis.read()) != -1) {
out.write(len);
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
备注说明:模板放在resources下的template文件下