tomcat 配置图片虚拟路径不起作用

问题:

项目涉及到用户头像,图片等信息,这些图片保存在项目中不方便,于是将选择保存在某个磁盘的一个文件夹中,例如  c:/files 

 

这样的话,使用全路径会相应的有些不方便,领导觉得不安全;

参考文档: https://blog.csdn.net/qq_39135287/article/details/82055549

解决办法:

     1.选择在tomcat中配置虚拟路径,打开tomcat目录找到配置文件夹  "conf " -->"server.XML"

        建议用某个文本编辑器(记事本格式乱,不建议使用 这里用Notepad++)

 

 

  2.配置文件的路径

              打开 server.xml 文件,在

           <host>    

                <!--这个标签,在这个标签中加一句话   虚拟文件路径配置  -->
              <Context path="/相对路径" docBase="盘符:/文件夹"></Context>

         </host>

  

 

3.可以试试了,还是不可以继续下面的操作

    加入虚拟路径后进行访问,http://localhost:8080//upLoadImage/patientpicture/1314.jpg (图片名),结果却发现仍然访问不到,找了很多原因,大多数介绍图片上传的都是这样介绍的,可是总出不来,折腾了,百度了,找到原因:eclipse对tomcat支持有时不是那么友好,单修改tomcat配置可能没有用,于是试着去用eclipse对tomcat进行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:

4、添加图片访问路径  (Document base 是你存放图片的路径     Path 是你访问图片的虚拟路径 )

5.配置结束,点击重启服务器,输入虚拟路径  http://localhost:8080/upLoadImage 访问资源文件夹:发现打不开,因为路径不完整,没有具体哪个图片头上  例如  http://localhost:8080//upLoadImage/patientpicture/1314.jpg

 

 

看到网上又说一直放在项目中或者tomcat中:

    这种方式简单,好用,但是对应要经常发版升级的来说就很不方面,文件在项目里 发版升级替换war时文件就会被替换掉

   网友的经历:之前写的一个小项目,用到了图片上传到服务器,然后就开始尝试着去实现这个功能,最初的做法是把图片上传到项目的WEB-INF文件夹的image文件夹中,可以实现图片上传到服务器,可是之后却发现了一个问题,就是重启tomcat服务器,之前上传到服务器的图片都不见了,这就让我郁闷了很久。

      经过研究发现:

        我们在Java代码中上传图片时,图片的路径是通过代码  request.getSession().getServletContext().getRealPath("/img") 来获取路径的,而这句代码返回的路径是tomcat中webapps目录下的工程路径,图片就直接保存到了tomcat中。当我们重新发布工程的时候,tomcat其实是先将原来的工程删掉,然后再将改动过的新的工程放上去。而改动过的新的工程师来自与我们eclipse的工作空间中的工程,这就也难怪了,因为我们是把图片直接上传到的tomcat服务器下,而不是放到工作空间的工程目录下,自然重新部署后图片就没了。

      那么有什么方法能够保存这些上传到服务器的图片呢?通过网上查找资料,最终找到了解决方法那就是配置图片的虚拟路径,接下来就让我给大家讲解一下如何配置虚拟路径吧

最近在网上发现另外一种解决办法,我在这里补充说明一下:
            有的人可能会遇到这样的问题:那就是在 tomcat → conf → server.xml 配置文件中添加了图片的虚拟路径 <Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />,但是当你重启eclipse项目,再去打开tomcat → conf → server.xml 配置文件时,发现里面的内容又会自动还原成原来默认的配置,这也就意味着你之前配置的图片虚拟路径不存在了,从而导致你配置的图片虚拟路径不起作用。

为什么我们配置的server.xml文件会被自动还原成原来默认的配置呢? 

           在网上找了好几种方式,每次clean了tomcat后,自动还原成原来默认的配置。这是因为你的eclipse在整合Tomcat成功之后,会在你的eclipse视窗的Pagekage Explorer中自动生成一个Servers文件夹,Servers文件夹中也会有一个server.xml的文件,每一次重启eclipse项目,eclipse中的server.xml都会去覆盖掉 tomcat → conf → server.xml 配置文件,所以当你在遇到这类问题的时候,我们可以试着去修改eclipse中的server.xml文件配置。 

             说了这么多,接下来就让我给大家讲解一下如何操作吧

             一、 打开你的eclipse,在eclipse视窗的Pagekage Explorer中找到Servers → Tomcat v8.0 Server at localhost-config → server.xml文件
 

           

二、双击打开server.xml配置文件,找到<Host></Host>标签,在Host标签中添加 (这里的图片我存放在 D:\GroupSystem的文件夹中)

    <Context docBase="c:\files" path="/upLoadImage" reloadable="true"/>
  配置方法如下图:

 三、右键Tomcat v8.0 Server at localhost [Stopped, Republish],选择Start,启动Tomcat(找到并点击Console选项,能看到最后一行Server startup in 1889 ms 则表示Tomcat启动成功)    

 四、然后我们找到tomcat下的conf文件夹,打开server.xml配置文件,可以看到server.xml配置文件中的<Host></Host>标签自动添加了我们刚刚配置的图片虚拟路径

五、我们再去Eclipse中,双击Servers选项中的Tomcat v9.0 Server

   六、点击Overview视窗中的Modules

  七、可以看到,在Web Modules中也自动添加了我们刚刚配置的图片虚拟路径

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值