详解struts.multipart.saveDir的临时文件路径
2015-02-02 10:06
330 查看
Struts2中的struts.multipart.saveDir主要是用来设置上传文件的临时目录,在不同的配置方式下,它的临时文件目录大有不同,好多人在设置后往往找不到这个临时目录在哪里,下面我就来详细说明一下。
注意:下面的web服务器以tomcat为例。
这种情况下,临时文件就放在tomcat安装目录下的"work\Catalina\localhost\项目名称"目录下。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=fd4b683a6f81800a6ee5890e813433d6/8694a4c27d1ed21b22e7bf50ae6eddc451da3f5c.jpg)
配置二:
<constant name="struts.multipart.saveDir" value="/tempfile"/>
这种情况下,临时文件放在项目所在的根磁盘下的tempfile目录下。
如项目放在D盘,则该tempfile临时文件夹就在D盘根目录下。
![](http://g.hiphotos.baidu.com/exp/w=500/sign=1de217949013b07ebdbd50083cd69113/77c6a7efce1b9d161bea0ad4f0deb48f8c546452.jpg)
配置三:
<constant name="struts.multipart.saveDir" value="tempfile"/>
这种情况比上面少了一个斜杠,这种情况下,临时文件放在项目所在的tomcat的bin目录下的tempfile目录下。
如项目放在D:\tomcat\webapps目录,则该tempfile临时文件夹就在D:\tomcat\bin目录下。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=dd1b9c5eb5fd5266a72b3c149b199799/1f178a82b9014a90aad3d608aa773912b21bee92.jpg)
配置四:
<constant name="struts.multipart.saveDir" value="D:/mytemp/tempfile"/>
这种情况规定了绝对的路径,这种情况下,临时文件就在所配置的绝对路径了。即D:/mytemp/tempfile目录。
注意:mytemp文件夹先得手动建立好,否则会报错。
![](http://a.hiphotos.baidu.com/exp/w=500/sign=091a93afc55c1038247ecec28210931c/d4628535e5dde71170a5d043a4efce1b9d166114.jpg)
可以看出:以上四种方法都没能将临时目录设置在【项目】之中。
第四种方法看似可以做到将绝对路径设置为项目当中的路径,但是如果项目移植到别处,该绝对路径就会找不到,反而会报错,不适合。
第三种方法放在tomcat的bin目录下,不伦不类,破坏了tomcat程序的结构,所以也不适合。
第二种方法放在根目录下,这样某一天看到这个文件不知道从哪来,和哪个程序有关,被删了也说不定。所以也不适合。
算下来第一种方法不算最优,但也算相对较优了。最起码它和项目所在tomcat关联最近且不会破坏tomcat程序结构。
所以这个struts.multipart.saveDir干脆不设置了,留下时间做其他的事吧。
补充:网上还有另一种方法:
在系统启动的时候,用ServletContextListener修改系统属性。 System.setProperty("user.dir","你的Tomcat的目录下的webapps");
然后再配置<constant name="struts.multipart.saveDir" value="yourproject/temp"></constant> 。
这种方法我有下面两个疑问:
(1)你的Tomcat的目录下的webapps--》指的是d:/tomcat/webapps这个绝对路径么?
(2)如果是这个绝对路径,那项目移植到别处的时候,比如F盘,这个地方是不是还得把d改成f。如果是这样,那这个方法既配置麻烦又不好维护。
我自己试了试,反正是没成功,要是有谁成功了,记得评论给我。
注意:下面的web服务器以tomcat为例。
方法/步骤
配置一:不设置struts.multipart.saveDir这种情况下,临时文件就放在tomcat安装目录下的"work\Catalina\localhost\项目名称"目录下。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=fd4b683a6f81800a6ee5890e813433d6/8694a4c27d1ed21b22e7bf50ae6eddc451da3f5c.jpg)
配置二:
<constant name="struts.multipart.saveDir" value="/tempfile"/>
这种情况下,临时文件放在项目所在的根磁盘下的tempfile目录下。
如项目放在D盘,则该tempfile临时文件夹就在D盘根目录下。
![](http://g.hiphotos.baidu.com/exp/w=500/sign=1de217949013b07ebdbd50083cd69113/77c6a7efce1b9d161bea0ad4f0deb48f8c546452.jpg)
配置三:
<constant name="struts.multipart.saveDir" value="tempfile"/>
这种情况比上面少了一个斜杠,这种情况下,临时文件放在项目所在的tomcat的bin目录下的tempfile目录下。
如项目放在D:\tomcat\webapps目录,则该tempfile临时文件夹就在D:\tomcat\bin目录下。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=dd1b9c5eb5fd5266a72b3c149b199799/1f178a82b9014a90aad3d608aa773912b21bee92.jpg)
配置四:
<constant name="struts.multipart.saveDir" value="D:/mytemp/tempfile"/>
这种情况规定了绝对的路径,这种情况下,临时文件就在所配置的绝对路径了。即D:/mytemp/tempfile目录。
注意:mytemp文件夹先得手动建立好,否则会报错。
![](http://a.hiphotos.baidu.com/exp/w=500/sign=091a93afc55c1038247ecec28210931c/d4628535e5dde71170a5d043a4efce1b9d166114.jpg)
可以看出:以上四种方法都没能将临时目录设置在【项目】之中。
第四种方法看似可以做到将绝对路径设置为项目当中的路径,但是如果项目移植到别处,该绝对路径就会找不到,反而会报错,不适合。
第三种方法放在tomcat的bin目录下,不伦不类,破坏了tomcat程序的结构,所以也不适合。
第二种方法放在根目录下,这样某一天看到这个文件不知道从哪来,和哪个程序有关,被删了也说不定。所以也不适合。
算下来第一种方法不算最优,但也算相对较优了。最起码它和项目所在tomcat关联最近且不会破坏tomcat程序结构。
所以这个struts.multipart.saveDir干脆不设置了,留下时间做其他的事吧。
补充:网上还有另一种方法:
在系统启动的时候,用ServletContextListener修改系统属性。 System.setProperty("user.dir","你的Tomcat的目录下的webapps");
然后再配置<constant name="struts.multipart.saveDir" value="yourproject/temp"></constant> 。
这种方法我有下面两个疑问:
(1)你的Tomcat的目录下的webapps--》指的是d:/tomcat/webapps这个绝对路径么?
(2)如果是这个绝对路径,那项目移植到别处的时候,比如F盘,这个地方是不是还得把d改成f。如果是这样,那这个方法既配置麻烦又不好维护。
我自己试了试,反正是没成功,要是有谁成功了,记得评论给我。
相关文章推荐
- 关于Struts2文件上传Unable to find 'struts.multipart.saveDir'错误的解决
- Struts2上传文件出现:Unable to find 'struts.multipart.saveDir' property setting
- Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法
- Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法
- Struts2上传文件报错:Unable to find'struts.multipart.saveDir'property setting
- Struts2 上传文件报错: Unable to find 'struts.multipart.saveDir' property setting.
- Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法
- struts2文件上传中的struts.multipart.saveDir提示信息
- 关于Struts 2文件上传报错:Unable to find 'struts.multipart.saveDir' property setting
- Struts2中的struts.multipart.saveDir的配置
- strut2 struts.multipart.saveDir
- Struts2中的struts.multipart.saveDir的配置
- Struts2中的struts.multipart.saveDir的配置
- Struts2中的struts.multipart.saveDir的配置
- 使用API获取文件内部存储路径详解(getFilesDir()和getCacheDir())
- win10桌面路径怎么改?windows10桌面文件路径及临时文件夹路径修改方法详解
- Struts2中的struts.multipart.saveDir的配置
- Struts2中的struts.multipart.saveDir的配置
- Unable to find 'struts.multipart.saveDir' property setting
- Struts2中的struts.multipart.saveDir的配置