springboot存储本地文件,并映射http网络路径

65 阅读1分钟

在yml中配置路径字段

project:
  imgurl: D:/unvimage/

创建WebConfig类

//Adapter已经被废弃,springboot2.0后直接实现WebMvcConfigurer即可
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Value("${project.imgurl}")
    private String imgurl;
    /**
     * 接收宇视数据存储在本地,并映射http网络路径
     * @param registry
     */
    public void addResourceHandlers(ResourceHandlerRegistry registry){

        //和页面有关的静态目录都放在项目的static目录下
        //registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        //上传的图片在D盘下的OTA目录下,访问路径如:http://localhost:8081/OTA/d3cXX.jpg
        //其中OTA表示访问的前缀。"file:D:/OTA/"是文件真实的存储路径

        //判断目录是否存在,如果不存在创建目录
        File file = new File(imgurl);
        if(!file.exists()){
            if(!file.mkdirs()){
                System.out.println("图片存储路径创建失败");
            }
        }
        // 其中/img/为http链接中路径,imgurl为本地路径
        registry.addResourceHandler("/img/**").addResourceLocations("file:" + imgurl);

    }
}