2013-05-07 5 views
2

이것은 내 코드이며 PDF의 내용이 포함 된 배열의 fileByte입니다. 그러나 파일이 손상되어 읽을 수 없습니다. 여기서 뭐가 잘못 됐니? 감사!바이트 배열에서 PDF로 손상됨 pdf

HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); 
response.addHeader("Content-Disposition", "attachment;filename=test.pdf"); 

    ServletOutputStream outputStream = response.getOutputStream(); 
    response.setContentType("application/pdf"); 
    response.setContentLength(fileByte.length); 
    outputStream.write(fileByte); 
    outputStream.flush(); 
    outputStream.close(); 
+1

여기에 잘못된 것이 없습니다. 'fileByte'가 맞습니까? 파일에 쓰십시오. – Oliv

+0

파일을 만든 다음 파일을 보내려면 byteArray로 파일을 변환합니다. 직접하는 법을 보여 주실 수 있습니까? iText PDF 렌더러를 사용하여 pdf 파일을 만듭니다. 렌더러로 파일을 저장하면 문제없이 열 수 있습니다. – Rob

+0

그냥'FileOutputStream fos = new FileOutputStream (새 파일 (파일 이름)); fos.write (fileByte); fos.close();'. 파일을 확인하십시오, 나는 당신이 다운로드하는 것과 같을 것이라고 생각합니다. – Oliv

답변

1

확인이 :

Send pdf to http client

먼저 올바른 바이트를 가지고 있는지 확인, 그래서 그것을 파일을 작성하고 바이트 배열이 좋은 여부를 확인하려고합니다. 일단이 과정을 거치면 HTTP 응답을 위해 outputstream에 쓰는 것이 좋습니다.

희망 하시겠습니까?

+0

감사합니다. 바이트 []가 어떻게 든 잘못되었습니다. 당신이 제공 한 URL에 설명 된 것과 같은 일부 조각을 변경 한 후에, 나는 작동 시스템을 가지고있다. 감사! – Rob