java - 从 java servlet 下载时文件损坏
问题描述
我在 servlet 中有一个进程,它创建一个 .pdf 文件并将其发送给客户端。但是,Adobe 不会打开下载的文件(“打开此文档时出错。文件已损坏,无法修复。”)。驻留在服务器上的原始创建文件很好,Adobe 打开它没有问题。
我的代码:
private static void sendFile(HttpServletResponse response, String pdfPath) throws FileNotFoundException, IOException {
PrintWriter out = response.getWriter();
File f = new File(pdfPath);
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Disposition", "attachment; filename=\"" + f.getName());
response.setContentLength((int) f.length());
response.setContentType("application/pdf");
FileInputStream fileInputStream = new FileInputStream(pdfPath);
int i;
while ((i = fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
out.close();
}
解决方案
推荐阅读
- node.js - Axios 在特定 API 的 AWS Lambda 上总是超时
- sql - 我们可以在不使用连接的情况下在 Oracle sql 中创建重复的行吗
- python - Python - 在类实例化期间根据用户输入选择函数或更改模块
- haskell - quickCheck 输入的类型
- vue.js - 如何将当前 v-for 元素的 store_id 附加到 this.apiUrl?谢谢
- javascript - 欧拉计划 #43:为什么我的答案需要这么长时间?
- python - 删除列表列表中“”之间的空格
- python - 使用 imgkit 截取网页截图
- python - 如何更改django的重置密码
- python - 如何在一个大字典中获取多个字典中的所有数据