将Tomcat中存储的文件 映射到磁盘方法?

1.项目部署到tomcat中发现,由于以前的图像存储及文件上传下载都是放在Tomcat中项目的WEB-INF下的upload以及PDF文件夹下,这样也就导致每次重新部署都会将原来的图像覆盖掉。之前的做法是 先备份这2个文件夹,部署解压后的war包后 将备份的文件替换掉,这样的操作对于运维布署人员 很不友好,网络上目前的解决方案是 将存储在Tomcat项目部署路径下的文件,通过映射放到服务器的磁盘文件下,这样就实现了项目部署与存储文件的分离。具体的做法如下(实际操作中出现 由于tomcat配置问题导致 磁盘中文件修改,映射不到 需要重启才能映射到的问题。后面通过重装tomcat8解决)

2.首先是 图像文件上传路径的修改
原来的图像文件上传 使用的Mulitipate进行文件操作 ,文件存储的路径是
通过获取tomcat的 http请求获取的位置+文件名=存储路径

request.getSession().getServletContext().getRealPath("/")+"/upload/picture"+fileName

新的上传的位置=Tomcat磁盘映射的位置

String  mapper_url=“D:\\\mapped\\”;
String fileName =  System.currentTimeMillis()+".jpg";  //文件名
String relative_path ="upload\\picture\\" +TextFormater.format(new Date(),TextFormater.DATE_PATTERN)+"\\"+fileName;//相对路径
String absolute_path =  mapper_url+relative_path;//文件存储绝对路径 

3.文件下载及 图像显示的修改
主要有2种方法实现 请求路径到磁盘路径的映射
3.1(无需重启服务器)通过配置Tomcat解压目录 conf/Catalina/localhost/
通过添加xxx.xml文件(xxx为请求匹配路径)

<Context docBase="D:\xxx\xxx" path="/xxx" reloadable="true"/>

3.2 通过配置conf目录下server.xml文件的配置,找到Host下 添加配置

<Context docBase="D:\xxx\xxx" path="/xxx" reloadable="true"/>

通过以上2种方式的任一一种,即可实现 通过匹配tomcat请求路径 映射到系统磁盘目录的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值