import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class PdfDownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filePath = "/path/to/your/file.pdf";
response.setContentType("application/pdf");
String fileName = new java.io.File(filePath).getName();
String headerKey = "Content-Disposition";
String headerValue = String.format("attachment; filename=\"%s\"", fileName.replaceAll(" ", "%20"));
response.setHeader(headerKey, headerValue);
try (InputStream in = new BufferedInputStream(new FileInputStream(filePath));
ServletOutputStream out = response.getOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
out.flush();
} catch (IOException e) {
throw new ServletException("Could not read file or write to response", e);
}
}
}
@RequestMapping("/showPdf")
public void showPdfs(javax.servlet.http.HttpServletRequest request, HttpServletResponse response, String path) throws ServletException {
response.setContentType("application/pdf");
try (InputStream in = new BufferedInputStream(new FileInputStream(path));
ServletOutputStream out = response.getOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
out.flush();
} catch (IOException e) {
throw new ServletException("Could not read file or write to response", e);
}
}