上传图片到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/**。

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