从spring控制器下载文件

我有一个要求,我需要从网站下载PDF。PDF需要在代码中生成,我认为这是freemarker和像iText这样的PDF生成框架的组合。还有更好的办法吗

然而,我的主要问题是如何允许用户通过Spring控制器下载文件

@RequestMapping(value=“/files/{file_name}”,method=RequestMethod.GET)
公共无效获取文件(
@PathVariable(“文件名”)字符串文件名,
HttpServletResponse(响应){
试一试{
//将文件作为InputStream获取
InputStream为=。。。;
//将其复制到响应的OutputStream
org.apache.commons.io.IOUtils.copy(is,response.getOutputStream());
response.flushBuffer();
}捕获(IOEX异常){
info(“将文件写入输出流时出错。文件名为“{}”,文件名,ex);
抛出新的RuntimeException(“将文件写入输出流时出错”);
}
}

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

response.setContentType(“application/pdf”);

发表评论