我正在尝试使用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文件的字节版本,但是不会提示用户下载该文件。我在这里做错了什么?
答案 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();
尝试从用户界面提交表单,您将获得预期的结果。