之前寫的一個小項目,用到了圖片上傳到服務器,然後就開始嘗試着去實現這個功能,最初的做法是把圖片上傳到項目的WEB-INF文件夾的image文件夾中,可以實現圖片上傳到服務器,可是之後卻發現了一個問題,就是重啓tomcat服務器,之前上傳到服務器的圖片都不見了,這就讓我鬱悶了很久。
經過研究發現:
我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼 request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。
那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧
一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名
結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:
二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server
三、點擊Overview視窗中的Modules
四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑
五、添加圖片訪問路徑 (Document base 是你存放圖片的路徑 Path 是你訪問圖片的虛擬路徑 )
六、配置結束,點擊重啓服務器,輸入虛擬路徑 http://localhost:8080/photo 訪問資源文件夾:
我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了
最近在網上發現另外一種解決辦法,我在這裏補充說明一下:
有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。
那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢?
這是因爲你的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 v9.0 Server at localhost-config → server.xml文件
二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
三、右鍵Tomcat v9.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中也自動添加了我們剛剛配置的圖片虛擬路徑
八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑 http://localhost:8080/photo/pic.jpg 訪問圖片
如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!
經過研究發現:
我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼 request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。
那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧
一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名
結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:
二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server
三、點擊Overview視窗中的Modules
四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑
五、添加圖片訪問路徑 (Document base 是你存放圖片的路徑 Path 是你訪問圖片的虛擬路徑 )
六、配置結束,點擊重啓服務器,輸入虛擬路徑 http://localhost:8080/photo 訪問資源文件夾:
經過研究發現:
我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼 request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。
那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧
一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名
結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:
二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server
三、點擊Overview視窗中的Modules
四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑
五、添加圖片訪問路徑 (Document base 是你存放圖片的路徑 Path 是你訪問圖片的虛擬路徑 )
六、配置結束,點擊重啓服務器,輸入虛擬路徑 http://localhost:8080/photo 訪問資源文件夾:
我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了
最近在網上發現另外一種解決辦法,我在這裏補充說明一下:
有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。
那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢?
這是因爲你的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 v9.0 Server at localhost-config → server.xml文件
二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
三、右鍵Tomcat v9.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中也自動添加了我們剛剛配置的圖片虛擬路徑
八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑 http://localhost:8080/photo/pic.jpg 訪問圖片
如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!
我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了
最近在網上發現另外一種解決辦法,我在這裏補充說明一下:
有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。
那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢?
這是因爲你的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 v9.0 Server at localhost-config → server.xml文件
二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)
<Context docBase="D:\GroupSystem" path="/photo" reloadable="true" />
配置方法如下圖:
三、右鍵Tomcat v9.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中也自動添加了我們剛剛配置的圖片虛擬路徑
八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑 http://localhost:8080/photo/pic.jpg 訪問圖片
如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!