String filePath = getServletConfig().getServletContext().getRealPath("/");
D:\apache-tomcat-8.5.14\webapps\JavaIO_demo1\
File file = new File(filePath.substring(0, filePath.lastIndexOf("webapps")) + "\\bin\\");
D:\apache-tomcat-8.5.14\bin
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取要下载的文件名
String filename = "point.xlsx";
String filePath = getServletConfig().getServletContext().getRealPath("/");
File file = new File(filePath.substring(0, filePath.lastIndexOf("webapps")) + "\\bin\\");
String message = "";
// 如果文件不存在
if (!file.exists()) {
request.setAttribute("message", "您要下载的资源已被删除!");
request.getRequestDispatcher("/message.jsp").forward(request, response);
return;
}
// 处理文件名
String realname = filename.substring(filename.lastIndexOf("_") + 1);
// 设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "utf-8"));
// 读取要下载的文件,保存到文件输入流中
FileInputStream in = new FileInputStream(file + "\\" + filename);
// 创建输出流
OutputStream out = response.getOutputStream();
byte[] bytes = new byte[1024];
int len = 0;
while ((len = in.read(bytes)) != -1) {
out.write(bytes, 0, len);
}
in.close();
out.close();
}