【发布时间】:2014-06-18 19:18:57
【问题描述】:
下面我正在从数据库中读取 pdf...我正在尝试在浏览器中打开 pdf 文件...但不是在浏览器中打开它总是下载...下面给出的代码请帮助我在浏览器中打开 pdf 而不是要求下载....
@RequestMapping(value = "account/documents/{id}", method = RequestMethod.GET)
public void downloadDocument(HttpServletRequest request,
HttpServletResponse response, @PathVariable("id") String docId)
throws Exception {
HttpSession session = request.getSession(true);
int accountId = (Integer) session.getAttribute("ownerAccountId");
Map<String, String> docMap = DbInteractor.getUploadedDocsByDocId(
Integer.valueOf(docId), accountId);
String docName = docMap.get("name");
String typeName = docMap.get("type");
String[] fileName = docName.split("\\.(?=[^\\.]+$)");
typeName = typeName.replace(" ", "");
if (typeName.equals("CCD/CCR")) {
typeName = "CCDorCCR";
}
String filename = typeName + docId + "." + fileName[1];
System.out.println(filename);
FileInputStream fileInputStream = new FileInputStream(
Constants.DOCUMENTS_PATH + filename);
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Content-disposition", "inline; filename="
+ docName);
OutputStream os = response.getOutputStream();
IOUtils.copy(fileInputStream, os);
os.flush();
os.close();
}
你能帮帮我吗.....
【问题讨论】:
-
尝试检查浏览器中的实际响应头字段。
-
请考虑 docName 可以包含空格,这样:
filename=\"" + docName + "\""更好。
标签: java pdf browser inline content-disposition