2012-05-03 2 views
0

내 POJO 클래스에 pdf 파일 위치 및 pdf 파일이 있습니다. 서블릿을 사용하여 pdf를 다운로드하고 싶습니다. 끝내기위한 몇 가지 방법을 알려주세요. 파일 위치 =/tmp/SWBC_444Thu May 03 20:01:07 IST 20124366242221752147545.pdf 이 파일 위치를 사용하여 사용자에게 pdf 파일을 다운로드하라는 메시지를 표시하려고합니다.서블릿을 사용하여 pdf로 보고서 다운로드

여기 내 코드입니다.

File file = new File(filePath); 
    OutputStream responseOutputStream = response.getOutputStream(); 
    response.setContentLength((int)filePath.length()); 
    FileInputStream fileInputStream = new FileInputStream(file); 
    int size = fileInputStream.available(); 
    byte[] content = new byte[size]; 
    int bytesRead; 
    while ((bytesRead = fileInputStream.read(content)) != -1) 
    { 
    responseOutputStream.write(content, 0, bytesRead); 
    } 
    responseOutputStream.flush(); 
    fileInputStream.close(); 
    responseOutputStream.close(); 

. 나는 파일을 읽고 생성하지만 그 파일을 열면 비어있다.

감사합니다 ..!

+0

이 게시물을 볼 수 있습니다 : [JasperReports : 서블릿에서 보고서 호출] (http://stackoverflow.com/questions/2399507/jasperreports-calling-report-from-servlet) & [사용자에게 묻지 않는 다운로드보고 저장] (http://stackoverflow.com/questions/6085049/report-download-not-prompting-user-to-save). 너무 잘 검색;) –

+0

파일 file = new File (filePath); ServletOutputStream servletOutputStream = response.getOutputStream(); ; BufferedInputStream bufferIput = null; FileInputStream fileInputStream = 새 FileInputStream (파일); bufferIput = new BufferedInputStream (fileInputStream); 바이트 [] bBuffer = 새 바이트 [fileInputStream.available()]; int nBytes = -1; while ((nBytes = bufferIput.read (bBuffer, 0, bBuffer.length)) ! = -1) { servletOutputStream.write (bBuffer, 0, nBytes); } 문제가 해결되었습니다. 당신은이 코드를 사용하여 pdf 파일을 읽고 – Stephen

+0

을 다운로드 할 수 있습니다. 다른 사람들을 돕기 위해 해결책을 게시 할 수 있습니다. –

답변

0

httpservletresponse.setHeader ("Content-disposition", "attachment; filename = \" "+ title +".pdf \ ""); 해야합니까

+0

나는 그것을했습니다. 나는 PDF를위한 기본적인 것을 의미합니다. 어쨌든, 이제는 지정된 파일 위치에서 pdf 파일을 읽고 pdf 파일이 생성되지만 파일을 열면 아무것도 표시되지 않습니다. File – Stephen

관련 문제