Spring-在浏览器中显示PDF文件,而不是下载
我正在尝试使用spring在浏览器中显示pdf。 我的问题是浏览器下载文件而不是显示它。 这是我的代码:Spring-在浏览器中显示PDF文件,而不是下载,spring,pdf,browser,http-headers,Spring,Pdf,Browser,Http Headers,我正在尝试使用spring在浏览器中显示pdf。 我的问题是浏览器下载文件而不是显示它。 这是我的代码: @RequestMapping(value="/getpdf1", method=RequestMethod.GET) public ResponseEntity<byte[]> getPDF1() { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.pars
@RequestMapping(value="/getpdf1", method=RequestMethod.GET)
public ResponseEntity<byte[]> getPDF1() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
String filename = "pdf1.pdf";
headers.add("content-disposition", "inline;filename=" + filename);
headers.setContentDispositionFormData(filename, filename);
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(pdf1Bytes, headers, HttpStatus.OK);
return response;
}
@RequestMapping(value=“/getpdf1”,method=RequestMethod.GET)
公共响应getPDF1(){
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.parseMediaType(“application/pdf”);
字符串filename=“pdf1.pdf”;
headers.add(“内容处置”、“内联;文件名=“+filename”);
headers.setContentDispositionFormData(文件名、文件名);
headers.setCacheControl(“必须重新验证,后检查=0,前检查=0”);
ResponseEntity response=新的ResponseEntity(pdf1Bytes,headers,HttpStatus.OK);
返回响应;
}
我期待着你的回答!
谢谢你差不多做完了。移除
headers.setContentDispositionFormData(filename, filename);
从您的代码块。将多部分/表单数据发布到服务器时应使用它。在浏览器中控制下载或查看的内容配置
headers.add("Content-Disposition", "inline; filename=" + "example.pdf");
在浏览器中查看
headers.add("Content-Disposition", "inline; filename=" + "example.pdf");
下载
headers.add("Content-Disposition", "attachment; filename=" + "example.pdf");
下面的代码片段将帮助您在浏览器上显示文件
@GetMapping(value=“/terms-conditions”)
公共响应获取条件(){
字符串filePath=“/path/to/file/”;
字符串fileName=“fileName.pdf”;
文件=新文件(文件路径+文件名);
HttpHeaders=新的HttpHeaders();
headers.add(“内容处置”、“内联;文件名=“+filename”);
InputStreamResource资源=新的InputStreamResource(新文件InputStream(文件));
返回ResponseEntity.ok()
.标题(标题)
.contentLength(文件.length())
.contentType(MediaType.parseMediaType(“应用程序/pdf”))
.机构(资源);
}
我试过这样做,但仍然是下载,而不是在浏览器中查看。这里的确切解决方案是什么。解决方案:代码块来自OP的问题,但没有setContentDispositionFormData
。也许你应该发布一个新问题。脱离主题,但你是否知道如何在新选项卡中打开此pdf查看器时从中删除spring leaf图标(web浏览器图标)?将你的favicon放在网站的根目录下,例如。另请参见。它不适用于我。我可以在浏览器上呈现.csv
文件吗?需要设置什么才能做到这一点?尝试将“headers.setContentType(MediaType.parseMediaType(“application/pdf”);”替换为“response.setContentType(“text/plain;charset=utf-8”);“很棒的东西,非常有用,谢谢!