小弟在搞一个项目中,发现上传文件时,只能上传到tomcat中的目录里面,我想在上传文件的同时,把文件放进项目中,路径应该怎么写呢??希望大虾们指点下! :idea: :idea:
你倒是可以用一个配置文件,比如properties文件, 把路径配置在里面
比如
path=D:/workspace
然后你程序就能读取这个配置文件从而更灵活配置目录
你的项目是部署到tomcat里面的,你项目的真正位置在tomcat里面,如果你非要部署到(有源代码,开发的workspace)项目里面,修改路径呗
那是tomcat的默认临时文件目录啊,
你实现上传功能,你应该得到上传的文件流,自然把文件流写到你想要放在的目录
PS:
路径只能写绝对路径的!
项目? Eclipse的项目?
还是Tomcat的webapps下你的项目?
可以参考下实例
http://blog.csdn.net/tangxingbin/archive/2007/08/29/1764560.aspx
路径写成绝对路径,然后到项目的目录下就可以了
getServletContext().getRealPath("/")
获取到tomcat中的目录。比方是
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\项目名\
然后根据这个URL截取一下就行了。比方
D:workspace\项目名\上传文件目录\
getServletContext().getRealPath("/")
获取的是编译出来的class所在的物理路径,也就是部署的路径,不是源代码的路径。
workspace应该是你的源代码的路径,是得不到的,也没必要;
文件上传存放的路径一般也是放在部署路径下的,只要你得到部署路径,你部署到哪都可以用的
不可能的,怎么可能动态获取workspace的路径了。两个不同的电脑应用程序之间互访,这不常见。不知道你这样做的目的是为了什么?
获取路径的方法有
1 .request.getRealPath(),这个方法已经不推荐使用,在servlet后继版本中将被取缔。
2.getServletContext().getRealPath("/")这个方法比较好用,可以直接在servlet和jsp中使用。
3.request.getSession().getServletContext().getRealPath()也可以在jsp和servlet使用。
4.this.getClass().getClassLoader().getResource("").getPath(),这个方法可以在任意jsp,servlet,java文件中使用
想做到动态访问也可以,不过比较麻烦一点。
办法是,做一个文本文件,存放在你的项目路径,想获取项目的路径,那么就访问这个文本文件。如果想换项目路径,更改文本文件里面的路径就行了。
是你项目的发布问题,发布的时候请在server.xml文件里面写......来发布你的项目