Servlet里面doGet方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 获取下载文件的路径
String realPath = "F:\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\upload\\WEB-INF\\upload\\3c7f271c-883b-48b5-bc58-13f6aad225fa/01.gif";
//2. 获取下载的文件名
String fileName = realPath.substring(realPath.lastIndexOf("/")+1);
System.out.println(fileName);
try {
//3. 设置浏览器能够支持下载需要的文件
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName,"UTF-8")); //中文文件名URLEncoder.encod编码,否则可能乱码
//4. 获取下载文件的输入流
FileInputStream inputStream = new FileInputStream(realPath);
//5. 创建缓冲区
int len = 0;
byte buffer[] =new byte[1024];
//6. 获取OutputStream对象
OutputStream outputStream = response.getOutputStream();
//7. 将FileOuTputStream流写入到buff缓冲区,使用OutputStream将缓冲区的数据输出到客户端
while((len=inputStream.read(buffer)) > 0) {
outputStream.write(buffer,0,len);
}
inputStream.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
在jsp中直接调用这个servlet就行了,用一个a标签。