Spring OutputStream - 用IE下载pptx

qum*_*uma 6 java spring-mvc stream java-8

我使用此Java代码从Web应用程序下载文件:

 @RequestMapping(value = "/filedownloads/filedownload/{userid}/{projectid}/{documentfileid}/{version}/", method = RequestMethod.GET)
 public void filesDownload(final @PathVariable("userid") String userId, final @PathVariable("projectid") String projectId,
        final @PathVariable("documentfileid") String documentFileId, final @PathVariable("version") String version,
        final HttpServletResponse response) throws IOException, BusinessException {

    ...

    final String fileName = "filename=" + documentFile.getFileName();
    final InputStream is = new FileInputStream(filePath);
    response.setHeader("Content-Disposition", "inline; " + fileName);
    IOUtils.copy(is, response.getOutputStream());
    response.flushBuffer();
}
Run Code Online (Sandbox Code Playgroud)

如果我要下载一个pptx文件,我会得到以下IE页面:

在IE中打开pptx

我想要做的是在Powerpoint中打开下载的文件.我现在的问题是,如果有一个标题设置,以便使用正确的应用程序打开此文件(在本例中为Powerpoint)

Nic*_*tto 3

Content Type只需尝试正确设置标头(application/vnd.openxmlformats-officedocument.presentationml.presentation在 a 的情况下)pptx,如下所示:

response.setContentType(
    "application/vnd.openxmlformats-officedocument.presentationml.presentation"
);
response.setHeader(
    "Content-Disposition", 
    String.format("inline; filename=\"%s\"", documentFile.getFileName())
);
response.setContentLength((int) new File(filePath).length());
Run Code Online (Sandbox Code Playgroud)

以下是与 Office 2007 文档对应的 MIME 类型列表。