在struts.xml中我如下配置
为什么项目将我上传的临时文保存到D:/temp,为何不是项目的WebAppRoot+/temp 下?
那我本地测试为xp,服务器linux,那我如何来操作?
在struts.xml中我如下配置
为什么项目将我上传的临时文保存到D:/temp,为何不是项目的WebAppRoot+/temp 下?
那我本地测试为xp,服务器linux,那我如何来操作?
[b]
原因解释:[/b]
[b][color=blue]
当你配置"struts.multipart.saveDir"时,struts会将目录定向为:[/color][/b]
[code="java"]
if (saveDir != null) {
fac.setRepository(new File(saveDir));
}[/code]
[b][color=blue]当"struts.multipart.saveDir"为“/temp”时,很容易验证 :
new File("/temp").getAbsolutePath();
为当前的根目录下的temp目录。
当你使用相对路径比如 "myproject/temp"配置时,效果依然不行。因为
new File(相对路径) 得到的结果是:
user.dir + 相对路径
在Tomcat下user.dir是 Tomcat目录下的bin目录,所以上述路径最终是:
Tomcat/bin/myproject/temp
( 不要试图使用 ../webapps/myproject/temp , 这样是不成功的)。[/color][/b]
[b]
解决办法2个,个人爱好自选:[/b]
[b][color=blue]1、更改user.dir的默认值。
在系统启动的时候,用ServletContextListener修改系统属性。
System.setProperty("user.dir","你的Tomcat的目录下的webapps");
然后在配置:[/color][/b]
[code="xml"] [/code]
[color=blue]
[b]
2、直接了当:[/b][/color]
[code="xml"] [/code]