pdf - 从 glassfish 容器外部下载 pdf 文件
问题描述
我正在尝试下载由另一个应用程序创建并存储在我的 Web 容器 (Glassfish) 之外的文件夹 (D:\forDownload\pdfs) 中的 pdf 文件。我正在使用 primefaces 8.0 RC1 和 windows server 2012
解决方案
pb 解决了这个问题:
File file = new File("D:\forDownload\pdfs\\"+bean.getCode()+".pdf");
InputStream fis = new FileInputStream(file);
byte[] buf = new byte[204800];
int offset = 0;
int numRead = 0;
while ((offset < buf.length) && ((numRead = fis.read(buf, offset, buf.length - offset)) >= 0))
{
offset += numRead;
}
fis.close();
HttpServletResponse response =
(HttpServletResponse) FacesContext.getCurrentInstance()
.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;filename="+bean.getCode()+".pdf");
response.getOutputStream().write(buf);
response.getOutputStream().flush();
response.getOutputStream().close();
FacesContext.getCurrentInstance().responseComplete();
推荐阅读
- node.js - 运行 `ng update @angular/cli @angular/core` 并且无法为 Angular 项目提供服务后,`ng serve` 出错
- java - 如何在不重新暂存 App 的情况下在 PCF 中重新暂存应用程序实例
- regex - 从 splunk 中的消息字段中删除字符
- macos - 密钥库密码?嗯?
- google-apps-script - 隐藏基于单元格值谷歌脚本的列
- flutter - 使用 Kotlin 语言创建 Flutter 项目的区别。和Java语言。?
- reporting-services - 每个行组的最新日期的 SSRS 图表
- javascript - 收到推送通知时如何验证用户是否仍然登录?
- c# - 减少 EF Core 选择的列
- javascript - 如何修改内联函数参数?