在java web项目中常常会遇到下载本地模板的要求,这里以下载Excel模板为例进行说明。
一、首先要在自己的项目下存放一个Excel文件,如图:
这个文件的存放位置不是固定的,我们可以通过获取真实路径的方式获取到他的路径,放在什么位置都是可以的。
二、核心代码:
public void downloadExcel(HttpServletResponse response,HttpServletRequest request) {
try {
//获取文件的路径
String excelPath = request.getSession().getServletContext().getRealPath("/Excel/"+"荒.xls");
String fileName = "荒.xls".toString(); // 文件的默认保存名
// 读到流中
InputStream inStream = new FileInputStream(excelPath);//文件的存放路径
// 设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("荒.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();
}
}
下载其他类型的文件的思路基本是一样的。