首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用spring mvc下载资源文件中的.xlsx文件

用spring mvc下载资源文件中的.xlsx文件
EN

Stack Overflow用户
提问于 2021-04-27 21:54:51
回答 1查看 45关注 0票数 0

我想下载一个存在于资源文件中的templete.xlsx副本,但它下载了一个损坏的文件。

插件:

代码语言:javascript
复制
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
   <encoding>${project.build.sourceEncoding}</encoding>
   <nonFilteredFileExtensions>
   <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
   </nonFilteredFileExtensions>
</configuration>
</plugin>

控制器:

代码语言:javascript
复制
 @RequestMapping(value = "download/{fileName}")
    public void downloadTemplateFile(@PathVariable("fileName") String fileName, HttpServletResponse response) throws IOException {

        try {
            Path templateFilePath = Paths.get(getClass().getClassLoader().getResource(fileName).toURI());
            if (Files.exists(templateFilePath)) {
                response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                response.addHeader("Content-Disposition", "attachment; filename=".concat(fileName));
                Files.copy(templateFilePath, response.getOutputStream());
                response.getOutputStream().flush();
            }
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
    }
EN

Stack Overflow用户

回答已采纳

发布于 2021-05-02 21:36:40

当我使用带有BufferedInputStream的FileCopyUtils.copy而不是Files.copy时,这个问题就解决了,如下所示:

代码语言:javascript
复制
 response.reset();
                response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                response.addHeader("Content-Disposition", "attachment; filename=".concat(fileName));
                FileCopyUtils.copy(new BufferedInputStream(new FileInputStream(templateFilePath.toFile())), response.getOutputStream());
                response.getOutputStream().flush();
                response.getOutputStream().close();
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67284494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档