Java通过 HttpServletResponse 下载pdf
时间: 2023-10-16 15:01:26 浏览: 46
要通过HttpServletResponse下载PDF文件,可以使用以下代码示例:
引用[1]中的代码是一个示例,其中使用了IOUtils类将文件内容写入输出流,并设置了响应的Content-Type和Content-Disposition头部信息。这个方法可以在Spring MVC的控制器中使用。
引用[2]中的代码也是一个示例,其中使用了BufferedInputStream和OutputStream将文件内容写入输出流,并根据isOnLine参数设置Content-Type和Content-Disposition头部信息。这个方法可以在普通的Java Servlet中使用。
你可以根据自己的需求选择其中的一种方法来实现文件下载功能。
相关问题
java通过HttpServletResponse读取pdf下载
你可以通过以下代码实现从 HttpServletResponse 中读取 PDF 文件并进行下载:
```java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置文件MIME类型
response.setContentType("application/pdf");
//设置Content-Disposition
response.setHeader("Content-Disposition", "attachment;filename=test.pdf");
//读取文件
InputStream in = request.getServletContext().getResourceAsStream("/test.pdf");
OutputStream out = response.getOutputStream();
//写文件
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
in.close();
out.close();
}
```
其中,`response.setContentType("application/pdf")` 设置响应的 MIME 类型为 PDF 文件类型,`response.setHeader("Content-Disposition", "attachment;filename=test.pdf")` 设置浏览器下载时使用的文件名,`request.getServletContext().getResourceAsStream("/test.pdf")` 获取 PDF 文件的输入流,`response.getOutputStream()` 获取响应输出流,最后通过循环读取并写入输出流实现文件的下载。
java 实现 HttpServletResponse 下载附件
好的,您可以参考以下代码来实现在Java中使用HttpServletResponse下载附件:
```
// 取得文件名
String fileName = "example.pdf";
// 取得文件路径
String filePath = "/path/to/example.pdf";
// 设置响应的内容类型
response.setContentType("application/octet-stream");
// 设置响应头,指定文件名,避免中文乱码问题
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 读取要下载的文件,保存到输入流中
FileInputStream fis = new FileInputStream(filePath);
// 创建缓冲区
byte[] buffer = new byte[1024];
// 获取输出流
OutputStream os = response.getOutputStream();
// 循环读取文件,写入输出流,实现下载
while (fis.read(buffer) > 0) {
os.write(buffer);
}
// 关闭输入流和输出流
fis.close();
os.close();
```
希望可以帮到您!