使用休息服务在浏览器中显示pdf

jen*_*nny 22 java pdf rest jersey

我正在使用japser报告生成pdf,我想创建一个REST Web服务,它将返回此pdf并在浏览器中显示它.我已经尝试过这里显示的代码:

REST Web服务方法,用于在浏览器中显示pdf文件

但是这样就下载了pdf文件.我希望首先在浏览器中显示它然后如果用户希望他可以在以后下载它.

(对不起重复的问题,但正如您所看到的,上述问题尚未得到解答......)

编辑:

使用REST服务代码:

@GET
@Path("/pdf")
@Produces("application/pdf")
public javax.ws.rs.core.Response getPdf() throws Exception
{
    File file = new File("E:\\tmp\\test.pdf");
    FileInputStream fileInputStream = new FileInputStream(file);
    javax.ws.rs.core.Response.ResponseBuilder responseBuilder = javax.ws.rs.core.Response.ok((Object) fileInputStream);
    responseBuilder.type("application/pdf");
    responseBuilder.header("Content-Disposition", "filename=test.pdf");
    return responseBuilder.build();
}
Run Code Online (Sandbox Code Playgroud)

Sau*_*ala 25

更改

response.header("Content-Disposition",  "attachment; filename=restfile.pdf");
Run Code Online (Sandbox Code Playgroud)

至

response.header("Content-Disposition",  "filename=restfile.pdf");
Run Code Online (Sandbox Code Playgroud)


cha*_*r.n 5

首先使用InputStream,我们可以将文件加载到输入流中,然后传递给IOUtils.copy并使用它进行下载,使用它进行预览response.header("Content-Disposition", "attachment; filename=restfile.pdf") response.setHeader("Content-disposition", " filename=" + output)

    InputStream inputStream = new FileInputStream(new File(path)); // load the file
    IOUtils.copy(inputStream, response.getOutputStream());

    response.setContentType("application/pdf");
    response.setHeader("Content-disposition", " filename=" + output);

    response.flushBuffer();
Run Code Online (Sandbox Code Playgroud)

该方法的返回类型是`ResponseEntity