<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>下载</title>
</head>
<body>
<a href="/chaptor02/download-servlet?filename=1.jpg">图片1</a> <br>
<a href="/chaptor02/download-servlet?filename=1.avi">图片1</a> <br>
</body>
</html>
@WebServlet("/download-servlet")
public class DownLoadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String filename = req.getParameter("filename");
ServletContext context = this.getServletContext();
String realPath = context.getRealPath("/img/" + filename);
FileInputStream fileInputStream = new FileInputStream(realPath);
String mimeType = context.getMimeType(filename);
resp.setHeader("content-type",mimeType);
resp.setHeader("content-disposition","attachment;filename="+filename);
ServletOutputStream outputStream = resp.getOutputStream();
byte[] buff = new byte[1024*8];
int len = 0;
while ((len = fileInputStream.read(buff)) != -1 ){
outputStream.write(buff,0,len);
}
fileInputStream.close();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}