springmvc获得项目根目录(绝对路径(服务器路径))

在项目中有时候我们需要记录日志或者上传图片,需要知道项目的具体路径,如果项目中使用了spring,那么获得到项目跟路径很简单,只需要在web.xml中添加listener配置,具体如下:

[html]  view plain  copy
  1. <context-param>    
  2.     <param-name>webAppRootKey</param-name>     
  3.     <param-value>evan.webapp</param-value>    
  4. </context-param>    
  5. <listener>     
  6.     <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>     
  7. </listener>​  
其中param-value的值可以随便赋值,只要保证同一个tomcat下不同项目的param-value不重复即可。通过以上配置后就可以在普通的java类中得到项目跟路径了。具体代码如下:

[java]  view plain  copy
  1. System.getProperty("evan.webapp");  
  2. //获取的值类似E:\develop_tools\apache-tomcat-7.0.59\webapps\bookMobile​  
SpringMVC框架中上传文件并将相对路径存储到MySQL数据库可以按照以下步骤进行操作: 1. 在前端页面中添加文件上传功能,可以使用HTML的input标签或者第三方插件如Dropzone.js等。 2. 在后端Controller中添加处理文件上传的方法,可以使用@RequestParam注解获取上传的文件。 3. 在处理文件上传的方法中,将上传的文件保存到服务器本地的指定目录下,可以使用File类的API。 4. 将保存在服务器本地的文件的相对路径(相对于Web应用根目录)存储到MySQL数据库中的指定表和字段中,可以使用Spring JDBC Template或者Mybatis等持久化框架。 以下是一个大概的示例代码: 前端HTML页面: ``` <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="Upload"/> </form> ``` 后端Controller: ``` @Controller public class FileUploadController { @RequestMapping(value = "/upload", method = RequestMethod.POST) public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { // 保存上传的文件到服务器本地目录下 String filePath = "/uploads/" + file.getOriginalFilename(); File dest = new File(filePath); file.transferTo(dest); // 将文件相对路径存储到MySQL数据库中 String sql = "INSERT INTO file_table (file_path) VALUES (?)"; jdbcTemplate.update(sql, filePath); return "upload_success"; } @Autowired private JdbcTemplate jdbcTemplate; } ``` 其中,`/uploads/`是服务器本地存储文件的相对路径,`file_table`是MySQL数据库中的表名,`file_path`是存储文件相对路径的字段名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大叔比较胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值