1.要获取下载文件的路径
2.下载的文件名是啥
3.设置想办法让浏览器能够支持下载我们需要的东西
4.获取下载文件的输出流
5.创建缓冲区
6.获取OutPutStresm对象
7.将FileOuputStream流写入到buffer缓冲区
8.使用OuputStream将缓冲区中的数据输出到客户端
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.要获取下载文件的路径
String realPath ="E:\web-servlet\response\src\main\resources\邱智康.png";
System.out.println("下载文件的路径:"+ realPath);
//2.下载的文件名是啥
String fileName= realPath.substring(realPath.lastIndexOf("\") + 1); // 3.设置想办法让浏览器Content-Disposition能够支持下载我们需要的东西,设置浏览器行为
resp.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8")); // 4.获取下载文件的输出流
FileInputStream stream = new FileInputStream(realPath); // 5.创建缓冲区
int len = 0;
byte[] buffer = new byte[1024]; // 6.获取OutPutStresm对象
ServletOutputStream outputStream = resp.getOutputStream(); // 7.将FileOuputStream流写入到buffer缓冲区
// 8.使用OuputStream将缓冲区中的数据输出到客户端
while((len = stream.read(buffer))>0){
outputStream.write(buffer,0,len);
}
outputStream.close();
stream.close();
}