我试图在浏览器中显示pdf,但它不起作用, 它显示了奇怪的字符:
%PDF-1.4 %���� 3 0 obj <>stream x���n�������‑
C��͇[1]
�,ю��Țv=>�%���"=���ٯ�
{�_�-�9�!�Hu�a�Y�(`�E�c��]]������Չ��t�jsb�w�.>PV~P��
F\�z�oV?��'����S��Mb�$��`�߃������aLV�h䕴������s��+���_�����������K�
�A�D����;[1]�[�I�'y���K�
��l[1]�
����,�i,2)
这是控制器中的方法代码:
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext external = ctx.getExternalContext();
HttpServletResponse response = (HttpServletResponse) external.getResponse();
OutputStream responseStream = response.getOutputStream();
InputStream fileInputStream = evaluacionDataManager.getDatosEvaluacionEmpleado().getDocumento();
byte[] pdf = IOUtils.toByteArray(fileInputStream);
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
response.setHeader("Content-Disposition", "attachment; filename=\""
+ "filename.pdf" + "\"");
FileOutputStream fos = new FileOutputStream("e:/aaaaaMG.pdf");
fos.write(pdf);
fos.close();
responseStream.write(pdf);
response.flushBuffer();
} catch (Exception e) {
logger.error("MENSAJE_CERTIFICACION", e);
addErrorMessage(e.getMessage(), "");
}
FacesContext.getCurrentInstance().responseComplete();
保存在PC的aaaaaMG.pdf
目录中的pdf e:
非常完美,但浏览器中显示的pdf无法正常工作。
我尝试了不同的内容类型,但似乎标题没有设置。
我也尝试使用response.setHeader("Content-Disposition", "inline; filename=\"" + "filename.pdf" + "\"");
代替attachment
,但它并没有解决我的问题。
欢迎任何线索。 感谢