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/
下的资源。