zoukankan      html  css  js  c++  java
  • SpringBoot下载文件

    SpringBoot下载文件

    前几天项目有需求, 需要下载项目中生成的csv文件, 虽然之前也做过下载文件, 类似的流程也明白, 但是当时使用的spring + springmvc的项目, 而且服务器使用的tomcat, 现在项目使用的是springboot, 运行的是个jar包, 所以整的时候也出了几个小问题, 还好下载功能还是很简单的, 话不多说, 下面直接戳重点!

    方式一

      在yml或properties文件中配置spring.resources.static-locations
    

    spring.resources.static-locations中配置的是静态资源位置, 这里配置了什么, 那么所有的静态资源就会到这里查找, 所以一般这里都会写上classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources, 这是一个列表性的配置,查找文件时会依赖于配置的先后顺序依次进行, 现在我们要找到下载的文件, 可以继续往后添加, 例如, 现在我的项目访问是localhost:8081, 我要下载的文件是 test1.csv, 而我的csv文生成在本地盘符D:csv中, 这时候我们就在spring.resources.static-locations后面继续添加", file:D:/csv/", 这就表示按照顺序找文件的时候, 前面的配置如果找不到, 就会到csv目录中查找, 而我们现在要下载文件的方式就是访问, localhost:8081/test1.csv 即可.

    方式二

      编码方式扩展springmvc的功能, 添加静态资源访问映射
    

    创建config类, 实现WebMvcConfigurer接口, 实现其中的方法addResourceHandlers, 注册静态资源访问路径, 指定访问的路径到哪里去找, 代码如下:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        /**
         * 添加静态访问资源映射
         *
         * @param registry
         */
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            //
            registry.addResourceHandler("/csv/**").addResourceLocations("file:D:/csv/");
        }
    }
    

    上面代码的意思就是当我访问静态资源路径是localhost:8081/csv/**这样类似的路径的时候, 就会到D盘的csv目录中找, 现在访问localhost:8081/csv/test1.csv就可以下载下来了, 其中的handler和location根据你自己的需求更换即可

  • 相关阅读:
    Nginx日志定时切割脚本
    阿里大于短信接口
    阿里云Linux系统挂载数据盘
    阿里云 OSS+CDN
    值得一学的几条谷歌搜索技巧
    【转】makefile语法规则
    【转】GCC使用简介
    网络编程中常见地址结构与转换(IPv4/IPv6)
    【转】adns解析库——域名解析实例(C++、linux)
    【转】什么是自动化测试
  • 原文地址:https://www.cnblogs.com/no-celery/p/14132081.html
Copyright © 2011-2022 走看看