package com.demo.dd;
import org.apache.commons.io.IOUtils;
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.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@WebServlet("/esp1")
public class Demo1Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getParameter("filename");
// 找到文件的真实路径
ServletContext context = this.getServletContext();
String realPath = context.getRealPath("/img/"+filename);
FileInputStream fis=new FileInputStream(realPath);
String mimeType = getServletContext().getMimeType(filename);
filename=new String(filename.getBytes(StandardCharsets.ISO_8859_1),StandardCharsets.UTF_8);
response.setHeader("content-type",mimeType);
// 设置响应头打开方式
response.setHeader("content-disposition","attachment;filename="+filename);
ServletOutputStream sos = response.getOutputStream();
//拷贝工具 <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
IOUtils.copy(fis,sos);
fis.close();
File file=new File(realPath);
System.out.println(realPath);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/mavendemo2_war/esp1?filename=11.png">图片下载</a>
<a href="/mavendemo2_war/esp1?filename=涛偶.png">兔</a>
</body>
</html>