2016-08-19 14 views
0

からpdfファイルを取得、私は、ルートディレクトリに保存されたPDFファイル(ガラスの魚サーバー)以下の場所Glassfishの - サーブレットを使用して、サーバー

D:\NetBeansProjects\pdfapp\build\web\pdf-test100.pdf 

に保存されている

PDFMergerUtility pdfMerger = new PDFMergerUtility(); 
pdfMerger.addSources(sources); 
String pdfFileName = "pdf-test100.pdf"; 
String contextPath = getServletContext().getRealPath("/"); 
    pdfMerger.setDestinationFileName(contextPath+pdfFileName); 
    pdfMerger.mergeDocuments(); 

ファイルを持っている私次のステップ私は上記のパスからファイルをダウンロードしたい jspページ上記のパスからダウンロードしたファイルをクリックするとハイパーリンクが作成されます。

私はサーブレットとサーバーの初心者ですので、ダウンロードを続行する方法を教えてください。

答えて

0

servlet APIチュートリアルを使用できます。サーブレットAPIはGlassfishまたは他のアプリケーションコンテナでも同じ動作をします。例えば。 this tutorial

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     performTask(request, response); 
} 
private void performTask(HttpServletRequest request, HttpServletResponse response) throws ServletException, 
      IOException { 

     String pdfFileName = "pdf-test100.pdf"; 
     String contextPath = getServletContext().getRealPath(File.separator); 
     File pdfFile = new File(contextPath + pdfFileName); 

     response.setContentType("application/pdf"); 
     response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName); 
     response.setContentLength((int) pdfFile.length()); 

     FileInputStream fileInputStream = new FileInputStream(pdfFile); 
     OutputStream responseOutputStream = response.getOutputStream(); 
     int bytes; 
     while ((bytes = fileInputStream.read()) != -1) { 
      responseOutputStream.write(bytes); 
     } 
} 

WEB-INFディレクトリにあなたのpdf-test100.pdfファイルを置きます。