赞
踩
SpringBoot前端通过 URL访问本地磁盘文件,其实就是 SpringBoot访问web中的静态资源的处理方式。
SpringBoot 访问web中的静态资源:https://blog.csdn.net/qq_42402854/article/details/90295079
首先,我们知道浏览器访问本地磁盘文件的方式为:
在浏览器直接输入:
file:///+本地磁盘目录或者磁盘文件全路径
我们只需要在 Spring Boot中配置静态资源的处理即可。
将配置信息提取到配置文件,方便我们配置。
application.yml配置文件:自定义 file配置信息
# 文件上传相关
file:
bucketName: def_bucket
local:
enable: true
# base-path: /home/app/ws_demo/ws-files
base-path: D:/ws-files/upload
baseUrl: 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; }
在配置类中添加静态资源映射。
/** * WebMvc 配置类 */ @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Autowired private FileProperties fileProperties; /** * 配置静态资源访问映射 * * @param registry */ @Override public 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())); } }
本地文件:
启动项目,浏览器访问 URL接口。
– 求知若饥,虚心若愚。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。