SpringBoot获取项目文件的绝对路径和相对路径

简介: SpringBoot获取项目文件的绝对路径和相对路径

@[toc]

1.场景

比如上传图片或者读取项目里的excel文件内容等,都需要准确获取文件路径

2.说明

项目代码大致样式

image.png

获取路径说明

所谓获取的相对路径,其实是获取项目打包后的target目录的路径,而不是咱们平常看到的代码路径,具体可查看下方图片

image.png

3.举例说明网上常见几种方法的路径获取结果

  1. request.getServletContext().getRealPath("")
  2. request.getServletContext().getRealPath("/")
  3. OperateExcelController.class.getResource("").getPath()
  4. OperateExcelController.class.getResource("/").getPath()
  5. OperateExcelController.class.getClassLoader().getResource("static/尼克.jpg").getPath()
  6. ResourceUtils.getURL("classpath:").getPath()

其中OperateExcelController为所在的类,ResourceUtils引入的是package org.springframework.util;

详情说明:
方法1、2的request.getServletContext().getRealPath("")和 request.getServletContext().getRealPath("/")
获得的路径不是项目路径,而是c盘下一个tomcat目录路径)
结果比如:C:\Users\211145187\AppData\Local\Temp\tomcat-docbase.8888.12632778012386910853\

会议详情

image.png

重要信息

大会介绍

image.png
image.png

方法3、4、5、6的OperateExcelController.class.getResource("").getPath()和OperateExcelController.class.getResource("/").getPath()和OperateExcelController.class.getClassLoader().getResource("").getPath()和ResourceUtils.getURL("classpath:").getPath()
实际获取的都是编译包里的根据经 比如:xx.class.getResource("").getPath()=xx.class.getResource("/").getPath()=xx.class.getClassLoader().getResource("").getPath()=ResourceUtils.getURL("classpath:").getPath()
结果比如:/E:/WorkSpace/demo/target/classes/

目录
相关文章
|
30天前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
|
18天前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
springboot + minio + kkfile实现文件预览
|
2天前
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
25 11
|
3天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
21 8
|
7天前
|
存储 前端开发 JavaScript
|
7天前
|
存储 Java API
|
28天前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
298 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
10天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
29 2
|
10天前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
32 2
|
10天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
27 1

热门文章

最新文章

下一篇
无影云桌面