Spring Boot上传文件设置绝对路径和访问绝对路径下的静态资源

1、设置绝对路径

在spring boot项目打成jar包后,上传文件的路径会有问题,或者可以成功上传但是服务器上找不到上传成功的文件。这时候我们需要为上传文件设置绝对路径。

application.properties的配置

#静态资源对外暴露的访问路径
file.staticAccessPath=/api/file/**
#文件上传目录(注意Linux和Windows上的目录结构不同)
#file.uploadFolder=/root/uploadFiles/
file.uploadFolder=d://uploadFiles/

配置上传文件的目录,也可以在这里设置上传文件的大小

@Configuration
public class UploadFileConfig {

    @Value("${file.uploadFolder}")
    private String uploadFolder;

    @Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(uploadFolder);
        //文件最大
        factory.setMaxFileSize("5MB");
        // 设置总上传数据总大小
        factory.setMaxRequestSize("10MB");
        return factory.createMultipartConfig();
    }
}

2、设置虚拟路径,访问绝对路径下资源

@Configuration
public class UploadFilePathConfig extends WebMvcConfigurerAdapter {

    @Value("${file.staticAccessPath}")
    private String staticAccessPath;
    @Value("${file.uploadFolder}")
    private String uploadFolder;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder);
    }
}

这时就可以通过访问 http://localhost:9090/api/file/xxx.txt访问d://uploadFiles/下的资源。

posted @ 2023-07-07 02:23  路暝月  阅读(864)  评论(0编辑  收藏  举报  来源