SpringBoot前端通过 URL访问本地磁盘文件,其实就是 SpringBoot访问web中的静态资源的处理方式。
SpringBoot 访问web中的静态资源:https://blog.csdn.net/qq_42402854/article/details/90295079
首先,我们知道浏览器访问本地磁盘文件的方式为:
在浏览器直接输入:
file:///+本地磁盘目录或者磁盘文件全路径
我们只需要在 Spring Boot中配置静态资源的处理即可。
1、自定义配置类
将配置信息提取到配置文件,方便我们配置。
application.yml配置文件:自定义 file配置信息
# 文件上传相关
file:bucketName: def_bucketlocal:enable: true
# base-path: /home/app/ws_demo/ws-filesbase-path: D:/ws-files/uploadbaseUrl: http://127.0.0.1:19090/ws/profile
自定义 file配置类:
@Data
@Component
@ConfigurationProperties(prefix = "file")
public class FileProperties {/*** 默认的存储桶名称*/private String bucketName = "bucketName";/*** 本地文件配置信息*/private LocalFileProperties local;}
/*** 本地文件 配置信息*/
@Data
@Component
@ConfigurationProperties(prefix = "local")
public class LocalFileProperties {/*** 是否开启*/private boolean enable;/*** 默认磁盘根路径*/private String basePath;/*** 默认文件URL前缀*/private String baseUrl;}
2、添加静态资源映射
在配置类中添加静态资源映射。
/*** WebMvc 配置类*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Autowiredprivate FileProperties fileProperties;/*** 配置静态资源访问映射** @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");// swagger-bootstrap-ui依赖registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");//本地文件上传路径registry.addResourceHandler("/profile/**") // 自定义URL访问前缀,和file配置一致.addResourceLocations(String.format("%s/%s/", "file:", fileProperties.getLocal().getBasePath()));}}
3、前端通过 URL访问
本地文件:
启动项目,浏览器访问 URL接口。
– 求知若饥,虚心若愚。