1. 程式人生 > >上傳圖片到tomcat伺服器(tomcat7-maven-plugin)

上傳圖片到tomcat伺服器(tomcat7-maven-plugin)

本來比較好的做法是將圖片上傳到圖片伺服器(nginx),但nginx主要用在linux平臺,由於客觀原因暫不考慮。然後想到的是設定tomcat伺服器虛擬路徑,伺服器路徑對映到本地磁碟路徑,將圖片上傳到本地磁碟中。但是專案中tomcat是以外掛的形式內嵌到maven中(pom檔案依賴tomcat7-maven-plugin),沒有找到設定虛擬路徑的方法,於是退而求其次,將圖片上傳到tomcat伺服器中,存到/WEB-INF/uploadedImages/路徑下。

先來看幾個路徑的問題,在java web工程中,/ 是指專案在tomcat中的根目錄(可以在tomcat中配置,我的專案中配置的是 / ,根目錄是http://localhost:8080/),實際是代表wepapp目錄,以我自己的專案為例,通過request.getSession.getServletContext().getRealPah("/")得到的路徑就是D:\javaweb\taotao-manager\taotao-manager-web\src\main\webapp\ 。另外,Thread.currentThread().getContextClassLoader().getResource("").getPath()得到的路徑是D:\javaweb\taotao-manager\taotao-manager-web\target\classes\,target資料夾會在每一次tomcat啟動執行專案時被清理(清理上次的target)後重建。

言歸正傳,由上可知圖片上傳的路徑可表示為request.getSession.getServletContext().getRealPah("/") + "WEB-INF/uploadedImages/",由於在配置檔案中配置了<mvc:resources location="/WEB-INF/uploadedImages/" mapping="/uploadedImages/**"></mvc:resources>,那麼圖片的src為http:localhost:8080/uploadedImages/**。