我使用此 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();
}
如果我要下载 pptx- 文件,我会得到以下 IE- 页面:
我想做的是在 Powerpoint 中打开下载的文件。 我现在的问题是,是否有标题设置以便使用正确的应用程序(在本例中为 Powerpoint)打开此文件
最佳答案
只需尝试正确设置 Content Type
header 即 application/vnd.openxmlformats-officedocument.presentationml.presentation
以防 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());
Here is the list of mime types corresponding to Office 2007 documents.
关于java - Spring OutputStream - 使用 IE 下载 pptx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39828967/