当前位置: 首页 > news >正文

SpringBoot前端URL访问本地磁盘文件

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接口。

在这里插入图片描述

– 求知若饥,虚心若愚。

相关文章:

  • Tomcat 面试题(一)
  • 用开源模型MusicGen制作六一儿童节专属音乐
  • STM32 定时器与PWM的LED控制
  • 如何用pip查看安装了哪些库?
  • AndroidStudio使用高德地图API获取手机定位
  • 爬楼梯 - LeetCode 热题 81
  • 【Bug】修改计算机名称出现ip无法连接mysql数据库
  • C#实现纳秒级的计时器功能
  • 安卓ANR检测、分析、优化面面谈
  • Sealos CLI快速部署部署K8s集群
  • 七大获取免费https的方式
  • Amazon云计算AWS(三)
  • Java 基础面试300题 (201-230)
  • 2010-2015 年阿拉斯加北坡苔原植物功能类型连续覆盖图
  • Linux 字体管理
  • Google 是如何开发 Web 框架的
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Apache Pulsar 2.1 重磅发布
  • ES6语法详解(一)
  • MySQL数据库运维之数据恢复
  • pdf文件如何在线转换为jpg图片
  • yii2中session跨域名的问题
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 码农张的Bug人生 - 初来乍到
  • 前端
  • 前端面试题总结
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何设计一个比特币钱包服务
  • 如何设计一个微型分布式架构?
  • 我有几个粽子,和一个故事
  • 用Visual Studio开发以太坊智能合约
  • 栈实现走出迷宫(C++)
  • # wps必须要登录激活才能使用吗?
  • #include
  • $.ajax中的eval及dataType
  • (+4)2.2UML建模图
  • (C++哈希表01)
  • (CPU/GPU)粒子继承贴图颜色发射
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)linux文件内容查看
  • (五)activiti-modeler 编辑器初步优化
  • (一)SvelteKit教程:hello world
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ****三次握手和四次挥手
  • ../depcomp: line 571: exec: g++: not found
  • .gitignore
  • .NET Core 中插件式开发实现
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 托管代码与非托管代码