Http 强制chrome在查看器中打开下载的pdf
我已经编写了通过http请求下载pdf文件的代码Http 强制chrome在查看器中打开下载的pdf,http,jakarta-ee,Http,Jakarta Ee,我已经编写了通过http请求下载pdf文件的代码 public void downloadDocument(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") String docId) throws Exception { HttpSession session = request.getSession(true);
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", "attachment; filename="
+ docName);
OutputStream os = response.getOutputStream();
IOUtils.copy(fileInputStream, os);
os.flush();
os.close();
}
public void下载文档(HttpServletRequest),
HttpServletResponse,@PathVariable(“id”)字符串docId)
抛出异常{
HttpSession session=request.getSession(true);
int accountId=(整数)session.getAttribute(“ownerAccountId”);
Map docMap=dbinteractitor.getUploadedDocsByDocId(
整数.valueOf(docId),accountId);
字符串docName=docMap.get(“name”);
字符串typeName=docMap.get(“type”);
String[]fileName=docName.split(“\\.(?=[^\\.]+$”);
typeName=typeName.replace(“,”);
if(typeName.equals(“CCD/CCR”)){
typeName=“CCDorCCR”;
}
字符串filename=typeName+docId+“+”文件名[1];
System.out.println(文件名);
FileInputStream FileInputStream=新FileInputStream(
常量文件(路径+文件名);
response.setHeader(“Expires”、“0”);
setHeader(“缓存控制”,
“必须重新验证,后检查=0,预检查=0”);
setHeader(“内容处置”、“附件;文件名=”
+文件名);
OutputStream os=response.getOutputStream();
复制(fileInputStream,os);
os.flush();
os.close();
}
但是该文件将在chrome中自动下载。是否有任何方法强制chrome在查看器中打开此文档(或要求在chrome中打开with对话框)您通过发送“内容处置:附件”来强制浏览器下载。即使删除标题也无法工作。我还尝试了内联。