PDF不会在浏览器java中显示或下载

时间:2016-01-05 02:27:54

标签: java spring

我试图在浏览器中显示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,但它并没有解决我的问题。

欢迎任何线索。 感谢

0 个答案:

没有答案