SSH 上传图片,如何获取项目的真实路径?

次奥。搞半天搞不定。
网上都说这个:
System.out.println("getContextPath : " + ServletActionContext.getServletContext().getRealPath("/"));
mb,我在Action里打印的结果是个临时文件夹:getContextPath : D:\我的文档\Eclipse-indigo\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SIGS\
SIGS是我的项目名字。
项目路径是:D:\我的文档\Eclipse-indigo\workspace\SIGS
上传肯定是要 传到D:\我的文档\Eclipse-indigo\workspace\SIGS\pages\image
谁来教教我怎么获取这个项目路径。

    ä½¿ç”¨Struts2的ServletActionContext可以得到项目的真实路径

    å‡å¦‚,项目名称为BookSystem,部署到Tomcat的webapps目录下,则

String path=ServletActionContext.getServletContext().getRealPath("/");

path取出的路径为:D:\apache-tomcat-7.0.16\webapps\BookSystem

即:BookSystem项目部署到服务器的完整路径


取出上传路径,并保证路径存在的代码如下:

Action类中部分代码:
//取出当前项目部署在服务器上的路径
String path=ServletActionContext.getServletContext().getRealPath("/");
//构建当前项目下的存放目录
String filePath=path+"images";
//构建文件对象
File folder=new File(filePath);
//检测文件夹是否存在,如果不存在,则新建images目录
if(!folder.exists()){
    folder.mkdir();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-13
Eclipse自动将项目部署在你的D:\我的文档\Eclipse-indigo\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps路径下,然后获取的路径当然是相对于这个的,是以部署的为准,并不是你的项目源码。你的描述表明程序没有任何问题。追问

真的是耶。
还有个问题,我的项目是 Svn import来的,虽然地址栏是localhost,但读取的东西好像是svn服务器上的,所以上传在本地的话网页无法显示。
这个怎么破?

追答

这个没研究过,不好意思

本回答被提问者采纳
第2个回答  2013-09-13
通过sturts注入就可以了啊 在web.xml里配置action的pram,然后提供set和get方法就行
第3个回答  2013-09-13
../(图片包)/(图片名) 如: ../images/11.jpg追问

图片都没上传好呢,怎么会有图片名……
图片包是什么东西?
ServletActionContext.getServletContext().getRealPath("../images/")
这样写不对,还是在 临时的虚拟 路径里。