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中也自動添加了我們剛剛配置的圖片虛擬路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章