我环顾四周并尝试了一些我看到的解决方案,但似乎没有任何效果。
所以这是我的情况:
我有一个 PDF 文件作为 BLOB 存储在我的 oracle 数据库中。在我的后端,我调用我的服务以下载该 pdf(在我的实体中,pdf 是 a byte[]),如下所示:
@GET
@Path("/downloadpdf")
@Produces("application/pdf")
public HttpServletResponse downloadPdf(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
UserGuideJpaService userGuideService = new UserGuideJpaServiceImpl();
HashMap<String, Object> result = userGuideService.getPdfGuide();
if ("0".equals(result.get("returnCode"))) {
UserGuide userGuide = (userGuide) result.get("userGuide");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-control", "private");
response.setDateHeader("Expires", 0);
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\"APP - User Guide.pdf\"");
byte[] pdf = userGuide.getPdf();
if (pdf != null) {
response.setContentLength(pdf.length);
ServletOutputStream out = response.getOutputStream();
out.write(pdf);
out.flush();
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
回到我的前端,我有这个:
注意:这就是我的response.data样子(它是一个字符串):
%PDF-1.4 %
8 0 obj << /Type /Page /Resources << /ProcSet [ /PDF /Text ] /Font 4 0 R /Shading 6 0 R /ExtGState 7 0 R
/MediaBox [0 0 595.28 864.00] /Contents 9 0 R /Parent 10 0 R >> endobj
但是,这不会下载文件,甚至不会打开它。
而且我很确定 pdf 在后端是正确的,因为我在使用时设法得到它:
OutputStream out = new FileOutputStream("Test.pdf");
out.write(pdf);
out.close();
我怎样才能从我的浏览器下载 pdf 格式?或者至少打开它?
饮歌长啸
相关分类