zoukankan      html  css  js  c++  java
  • 详解struts.multipart.saveDir的临时文件路径

    Struts2中的struts.multipart.saveDir主要是用来设置上传文件的临时目录,在不同的配置方式下,它的临时文件目录大有不同,好多人在设置后往往找不到这个临时目录在哪里,下面我就来详细说明一下。

    注意:下面的web服务器以tomcat为例。

    方法/步骤

    1. 配置一:不设置struts.multipart.saveDir

      这种情况下,临时文件就放在tomcat安装目录下的"workCatalinalocalhost项目名称"目录下。

    2. 配置二:

      <constant name="struts.multipart.saveDir" value="/tempfile"/>

        这种情况下,临时文件放在项目所在的根磁盘下的tempfile目录下。

      如项目放在D盘,则该tempfile临时文件夹就在D盘根目录下。

    3. 配置三:

      <constant name="struts.multipart.saveDir" value="tempfile"/>

        这种情况比上面少了一个斜杠,这种情况下,临时文件放在项目所在的tomcat的bin目录下的tempfile目录下。

      如项目放在D: omcatwebapps目录,则该tempfile临时文件夹就在D: omcatin目录下。

    4. 配置四:

      <constant name="struts.multipart.saveDir" value="D:/mytemp/tempfile"/>

      这种情况规定了绝对的路径,这种情况下,临时文件就在所配置的绝对路径了。即D:/mytemp/tempfile目录。

      注意:mytemp文件夹先得手动建立好,否则会报错。

    5. 可以看出:以上四种方法都没能将临时目录设置在【项目】之中。

      第四种方法看似可以做到将绝对路径设置为项目当中的路径,但是如果项目移植到别处,该绝对路径就会找不到,反而会报错,不适合。

      第三种方法放在tomcat的bin目录下,不伦不类,破坏了tomcat程序的结构,所以也不适合。

      第二种方法放在根目录下,这样某一天看到这个文件不知道从哪来,和哪个程序有关,被删了也说不定。所以也不适合。

      算下来第一种方法不算最优,但也算相对较优了。最起码它和项目所在tomcat关联最近且不会破坏tomcat程序结构。

      所以这个struts.multipart.saveDir干脆不设置了,留下时间做其他的事吧。

    6. 补充:网上还有另一种方法:

      在系统启动的时候,用ServletContextListener修改系统属性。 System.setProperty("user.dir","你的Tomcat的目录下的webapps");

      然后再配置<constant name="struts.multipart.saveDir" value="yourproject/temp"></constant>

      这种方法我有下面两个疑问:

    7. (1)你的Tomcat的目录下的webapps--》指的是d:/tomcat/webapps这个绝对路径么?

      (2)如果是这个绝对路径,那项目移植到别处的时候,比如F盘,这个地方是不是还得把d改成f。如果是这样,那这个方法既配置麻烦又不好维护。

      我自己试了试,反正是没成功,要是有谁成功了,记得评论给我。

  • 相关阅读:
    添加常驻Notification
    Java 数组操作
    一百本英文原著之旅 ( 15 finished )
    SQLServer2005中查询语句的执行顺序
    高效程序员的45个习惯
    博客园经典闪存语录
    for xml path('') 引发的数据不完整
    ajax向前台输出二维数组 并解析
    重视知识的本质
    C语言排序
  • 原文地址:https://www.cnblogs.com/a757956132/p/4266919.html
Copyright © 2011-2022 走看看