2017-07-18 8 views
0

私はウェブサイトからPDFをダウンロードしたいと思います。コードは、コード内で生成する必要があります。私はfreemarkerとiTextのようなPDF生成フレームワークの組み合わせであると考えました。もっと良い方法?spring RestFulサービスを使用してファイルをダウンロード

しかし、主な問題は、ユーザーにSpring Controllerを介してファイルをダウンロードさせるにはどうすればいいですか?

答えて

2
@RequestMapping(value = "/downlaod/{fileName}", method = RequestMethod.GET) 
public void getFile(
    @PathVariable("fileName") String fileName, 
    HttpServletResponse response) { 
    try { 

     InputStream is = ...; // get uploaded file using InputStream 

     org.apache.commons.io.IOUtils.copy(is, response.getOutputStream());  // copy this to response's OutputStream 
     response.flushBuffer(); 
    } catch (IOException ex) { 
     log.info("Error writing file to output stream. Filename was '{}'", fileName, ex); 
     throw new RuntimeException("IOError to writing file on output stream"); 
    } 

} 

response.getOutputStream()を使用している場合は、そこに必要なものを書き込むことができます。生成されたPDFを格納する場所として、この出力ストリームを渡しました。あなたも設定することができます

response.setContentType( "application/pdf");

関連する問題