从spring控制器下载文件

问题:

我有一个要求,我需要从网站下载PDF。 PDF需要在代码中生成,我认为这是freemarker和像iText这样的PDF生成框架的组合。任何更好的方法?
但是,我的主要问题是如何允许用户通过Spring Controller下载文件?

回答:

@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
public void getFile(
    @PathVariable("file_name") String fileName, 
    HttpServletResponse response) {
    try {
      // get your file as InputStream
      InputStream is = ...;
      // copy it to response's OutputStream
      org.apache.commons.io.IOUtils.copy(is, response.getOutputStream());
      response.flushBuffer();
    } catch (IOException ex) {
      log.info("Error writing file to output stream. Filename was '{}'", fileName, ex);
      throw new RuntimeException("IOError writing file to output stream");
    }

}

一般来说,当你有response.getOutputStream(),你可以写任何东西。您可以将此输出流作为放置生成的PDF的位置传递给您的生成器。另外,如果你知道你发送什么文件类型,你可以设置

response.setContentType("application/pdf");

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Downloading a file from spring controllers

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 83 = 87