点击查看代码
package servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/DownloadServlet")
public class DownloadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取参数
String parameter = req.getParameter("fileName");
//获得真实路径
ServletContext context = req.getServletContext();
String realPath = context.getRealPath("/img/" + parameter);
//设置响应头
//先告诉浏览器他的类型(MimeType)
String mimeType = context.getMimeType(parameter);
resp.setHeader("content-type",mimeType);
//在以附件的形式打开
resp.setHeader("content-disposition","attachment;filename="+parameter);
//创建字节输入流
FileInputStream fis = new FileInputStream(realPath);
//输入输出对拷
ServletOutputStream ops = resp.getOutputStream();
byte[] bt = new byte[1024*8];
int len=0;
while((len=fis.read(bt))!=-1){
ops.write(bt,0,len);
}
fis.close();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
}
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/Spring_MVC/DownloadServlet?fileName=1.png">图片1</a>
</body>
</html>