基本步骤:
// 1,要获取下载文件的路径
// String realPath = this.getServletContext().getRealPath("/24.jpg");
String realPath = "D:\\Maven\\target\\untitled\\24.jpg";
System.out.println(realPath);
// 2,下载的文件名
String filename = realPath.substring(realPath.lastIndexOf("\\") + 1);
// 3,想办法使浏览器支持下载的东西,中文文件名使用URLEncoder.encode编码,否则可能会引起乱码
resp.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(filename,"utf-8"));
// 4,获取下载文件的输入流
FileInputStream fileInputStream = new FileInputStream(realPath);
// 5,创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
// 6,获取OutputStream对象
ServletOutputStream outputStream = resp.getOutputStream();
// 7,将FileOutputStream流写入buffer缓冲区,使用OutputStream将缓冲区的数据输入到客户端
while((len = fileInputStream.read(buffer))>0){
outputStream.write(buffer,0,len);
}
// 8,关闭流
fileInputStream.close();
outputStream.close();
JavaWeb学习笔记