xiaochun023 2010-05-09 08:37 采纳率: 0%
浏览 210
已采纳

struts2上传临时文件为什么不从项目根目录开始

在struts.xml中我如下配置

为什么项目将我上传的临时文保存到D:/temp,为何不是项目的WebAppRoot+/temp 下?

那我本地测试为xp,服务器linux,那我如何来操作?

  • 写回答

7条回答 默认 最新

  • 拽拽的初行者 2010-05-09 19:28
    关注

    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料