我使用jquery.fileDownload和Spring通过Ajax下载.pdf文件。
该应用程序运行正常,pdf正在成功下载。问题是,我没有下载,而是希望在新的浏览器选项卡中打开pdf。
任何人都可以告诉我一些解决方案吗
我在服务器端使用Spring
@RequestMapping(value = "exportPDF", method = RequestMethod.POST, produces = APP_JSON)
@ResponseBody
public void getPDF(final HttpServletResponse response, @RequestParam(value = "empId", required = true) final String empId) throws IOException, Exception
{
final byte[] pdf= ExportPDFUtil.getFileBytes(empId); // get the file bytes
final OutputStream output = getOutputStream(response);
response.setHeader("Content-Disposition", "attachment; filename=documents_" + new DateTime() + ".pdf");
response.setContentType(CONTENT_TYPE);
response.setContentLength(pdf.length);
write(output, pdf);
}
在客户端,我使用的是AngularJS
$downloadXLS = function(id)
{
$.fileDownload('/user/exportPDF',
{
httpMethod : "POST",
data : {
empId : id
}
}).done(function(e, response)
{
// success
}).fail(function(e, response)
{
// failure
});
}
答案 0 :(得分:0)
从Mozilla检查PDF.js。大多数应用程序使用它来在浏览器中显示PDF。
答案 1 :(得分:0)
尝试使用它:
response.setHeader("Content-Disposition", "inline;
filename=documents_" + new DateTime() + ".pdf");
而不是:
response.setHeader("Content-Disposition", "attachment;
filename=documents_" + new DateTime() + ".pdf");