使用HttpServletResponse下载文件方法。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//下载文件的路径
String path = "E:\\javaWeb-Servlet\\respones\\src\\main\\resources\\servlet原理.png";
//下载文件的名字
String filename = path.substring(path.lastIndexOf("\\") + 1);
//设置response相应头用于浏览器下载文件 URLEncoder.encode设置编码格式
resp.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
//获取下载文件的输入流
FileInputStream input = new FileInputStream(path);
//设置缓冲区
int len;
byte[] by = new byte[1024];
//获取OutputStream对象
ServletOutputStream outputStream = resp.getOutputStream();
//将input流写到缓冲区,然后经过outputStream返回客户端
while ((len = input.read(by)) != -1) {
outputStream.write(by, 0, len);
}
//释放资源
outputStream.close();
input.close();
}