zoukankan      html  css  js  c++  java
  • SpringBoot读取Resource下文件的几种方式(十五)

    需求:提供接口下载resources目录下的模板文件,(或者读取resources下的文件)给后续批量导入数据提供模板文件。

    方式一:ClassPathResource 

    //获取模板文件:注意此处需要配置pom.xml文件;因为spring-boot默认只会读取application.yml配置文件
            ClassPathResource classPathResource = new ClassPathResource(examplePath);
            File file = null;
            try {
                file= classPathResource.getFile();
            } catch (IOException e) {
                e.printStackTrace();
            }

    模板文件位置

    坑1:找不到模板文件staffTemplate.xlsx。
    原因:maven默认只编译默认配置文件格式的文件,如yml。
    解决:pom.xml 增加下面配置

     <build>
          <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.yml</include>
                        <include>**/*.xlsx</include>
                    </includes>
                </resource>
            </resources>
        </build>

    坑2:中文文件名下载后无法正常显示。
    解决:将中文编码

    将
    response.setHeader("Content-Disposition", "attachment;fileName=批量上传用户模板.xlsx");
    //String fileName=new String("批量上传用户模板".getBytes(), StandardCharsets.ISO_8859_1);
    改为
    response.setHeader("Content-Disposition", "attachment;fileName=" + new String("批量上传用户模板".getBytes(), StandardCharsets.ISO_8859_1)
                        + ".xlsx");

    参考链接:https://blog.csdn.net/weixin_42410936/article/details/106126377

    问题:我通过这种方式,在本地可以找到路径,升到测试环境就不可以了。

  • 相关阅读:
    ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)
    Java(多态)动手动脑
    每周进度条(第二周)
    Java(异常处理)动手动脑
    软件工程概论课后作业1
    mysqlmmm官方安装指南翻译
    Mysql 字符集的修改步骤
    Amoeba搞定mysql主从读写分离
    邮件系统postfix安装和设置
    mysqlmmm实现mysql高可用
  • 原文地址:https://www.cnblogs.com/zhangshuaivole/p/13793940.html
Copyright © 2011-2022 走看看