使用Spring MVC和Apache POI下载PPT文件

时间:2017-03-27 01:00:14

标签: java spring spring-mvc apache-poi

我正在尝试使用Apache POI的HSFL从Spring MVC @RequestMapping方法异步地将PowerPoint文件返回给客户端。但是我无法下载文件

这是我的代码

@RequestMapping(value = "/downloadPPT", produces = "application/vnd.ms-powerpoint")
public @ResponseBody byte[] downloadPPT(HttpServletResponse response) throws IOException {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    byte[] bytes = null;
    HSLFSlideShow ppt = new HSLFSlideShow();

    // add first slide
    HSLFSlide s1 = ppt.createSlide();

    // add second slide
    HSLFSlide s2 = ppt.createSlide();

    // save changes in a file
    FileOutputStream out = new FileOutputStream("slideshow.ppt");

    ppt.write(outputStream);
    out.close();
    bytes = outputStream.toByteArray();

    return bytes;

}

我的回复似乎是我创建的ppt文件的字节版本,但是不会提示用户下载该文件。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

你不需要退货。 试试

OutputStream os = response.getOutputStream();

ppt.write(OS);

response.setContentType("应用程序/ vnd.ms-简报&#34);
response.setHeader(" Content-Disposition"," attachment; filename = \" slideshow.ppt \"");

并最终在

之内

os.flush();

os.close();

尝试从用户界面提交表单,您将获得预期的结果。