当前位置: 首页 > 面试题库 >

从Spring Controller下载文件

宿丰
2023-03-14
问题内容

我有一个需要从网站下载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");


 类似资料:
  • > 假设我有一个导出链接,如下所示:

  • 问题内容: 我想在浏览器中使用ajax和ActionResult下载文件。该文件已下载并从我的ActionResult返回。 我看到Http查询正常,并且在响应正文中看到了数据。问题是不建议将该文件保存在浏览器中。 一切似乎都很好。我在教程和论坛中看到的所有内容都和我一样,但我没有说过XD。我不明白我和其他人之间有什么区别。 这是我的ActionResult: 这是我的javascript: 谢谢

  • 问题内容: 我的GSP中有这个ajax调用: 这是我的控制器操作的代码块: 我从通过$ .Ajax方法从视图传递的数据中获取票证列表。比我将数据格式化为CSV格式,然后我想将数据导出为CSV文件,但没有任何反应。数据已发送到客户端,但是由于内容配置不正确,因此没有可供下载的文件。我想念什么?我试图做类似的事情: 并在控制器中生成纯字符串,但是那样我得到的文件没有扩展名是不可接受的。 我该如何实现?

  • 问题内容: 所有。我使用qwebkit pyqt4来实现浏览器。我有一个简单的代码来呈现页面。我可以浏览网站,但不能下载任何内容。 需要什么来补充可从链接下载文件的代码? 问题答案: 将处理程序连接到Webview页面的downloadRequested信号,然后使用页面的networkAccessManager来处理请求。

  • 我的python3代码: 它将内容保存在metadat.pdf但那不是pdf的真正内容,它是这个html页面: 任何帮助,我如何才能保存文件的真实内容,而不是这个html?它应该是真正的pdf,当我下载它是jsut这个html页面 更新: 当我使用Python会话时,从服务器的一个NSWER:

  • 我正在尝试加载.map文件,它放在android Studio的/assets文件夹中。.map文件是从mapsforge@override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(r.layout.activity_main)下载的;