最近项目中要用到上传员工信息,在填写员工信息,那么首先要定义模板且放在网站上,就要用到下载静态资源,一般情况下实现都是如下:
1、获取模板的路径;(这里的路径经常会搞错)
2、创建该路径的输入流;
3、设置response的头文件格式;
4、将输入流中的内容写进response的输出流中;
public void downloadExcel(HttpServletResponse response,HttpServletRequest request) {
try {
//获取文件的路径
String excelPath = request.getSession().getServletContext().getRealPath("/Excel/"+"xx.xls");
String fileName = "xx.xls".toString(); // 文件的默认保存名
// 读到流中
InputStream inStream = new FileInputStream(excelPath);//文件的存放路径
// 设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("xx.xls", "UTF-8"));
// 循环取出流中的数据
byte[] b = new byte[200];
int len;
while ((len = inStream.read(b)) > 0){
response.getOutputStream().write(b, 0, len);
}
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
但是你用了SpringBoot,那就是一句代码都不用敲,真是提高了开发效率,只需要把模板放在resources/static下,直接访问就可以下载,下边给出详细信息:
1、项目结构:
2、启动项目启动类:ExceldemoApplication;
3、在浏览器输入访问地址:http://localhost:8080/excel/xx.xlsx 并下载模板文件如下图所示: