很久之前遇到的问题,现整理如下。
首先是想将图片存在项目目录下,
this.getClass().getClassLoader().getResource("").getPath()
获得的是bin目录
session.getServletContext().getRealPath("/")
获得项目根目录
但是tomcat重新部署会删除旧项目,这样用户上传的图片也会被删除,所以将图片存在项目文件外。
url问题
不能直接返回图片本地地址给客户端,所以要有一个url,本来图片链接是访问这个web应用的url,但是图片是存在了项目文件之外,所以用该url无法访问。
最后配置tomcat的server.xml文件,新增一个context来映射图片文件夹的本地地址。
context表示一个web应用程序,它有一个path属性,是表示这个web应用的url的前缀,docBase是应用程序的路径。将path设为"/image",docBase设为图片的存储路径"D:/webtext/image" 。
<Context docBase="D:/webtext/image" path="/image"/>
搞定