Struts2中的struts.multipart.saveDir主要是用来设置上传文件的临时存放地址,而这个参数设置方法的不同对应的地址也不同。
1、如果没有设置struts.multipart.saveDir,那么将默认使用javax.servlet.context.tempdir指定的地址,javax.servlet.context.tempdir的值是由服务器来确定的,例如:假如我的web工程的context是sencha,服务器使用Tomcat,那么savePath就应该是%TOMCAT_HOME%\work\Catalina\localhost\sencha,临时文件的名称类似于upload__1a156008_1373a8615dd__8000_00000001.tmp,每次上传的临时文件名可能不同,但是大致是这种样式。而且如果是使用Eclipse中的Servers里面配置Tomcat并启动的话,那么上面地址中的%TOMCAT_HOME%将不会是系统中的实际Tomcat根目录,而会是Eclipse给它指定的地址,例如我本地的地址是这样的:E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\sencha\upload__1a156008_1373a8615dd__8000_00000001.tmp。
2、如果设置了struts.multipart.saveDir,例如在struts.xml中设置:
<constant name="struts.multipart.saveDir" value="/repository"/>
那么文件存放的地址不会是大家想当然的在web工程的repository目录下,网上有人说在D盘下也就是D:\repository,但是我没有D盘,我本地的savePath是E:\repository,所以应该是选取非C盘的第一个逻辑磁盘创建struts.multipart.saveDir指定的文件夹并存放临时文件。
3、如果设置了struts.multipart.saveDir但是value中并没有"/",就像这样:
<constant name="struts.multipart.saveDir" value="repository"/>
,那么repository文件夹会创建在user.dir位置下,使用Eclipse环境时,user.dir为我本地Eclipse的根目录E:\Program Files\Indigo,你可以通过System.getProperty("user.dir")查看,所以savePath就是E:\Program Files\Indigo\repository,在Tomcat下user.dir是Tomcat目录下的bin目录,所以应该是%TOMCAT_HOME%\bin\repository。
4、干脆使用绝对路径,这样就不会有任何问题了,哈哈!
分享到:
相关推荐
struts2文件上传中的struts.multipart.saveDir提示信息,是没有设置struts2上传的临时文件夹造成的,下面说了两种设置的方法
tomcat报错Unable to find 'struts multipart saveDir解决
struts.multipart.saveDir The directory to use for storing uploaded files 设置存储上传文件的目录夹 struts.objectFactory The com.opensymphony.xwork2.ObjectFactory implementation class ...
通过import org.springframework.web.multipart.MultipartFile;上传文件的一个工具性的jar.
org.apache.struts2.components.template, org.apache.struts2.config, org.apache.struts2.dispatcher, org.apache.struts2.dispatcher.mapper, org.apache.struts2.dispatcher.multipart, org.apache.struts2....
at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.cleanUp(MultiPartRequestWrapper.java:271) at org.apache.struts2.dispatcher.Dispatcher.cleanUpRequest(Dispatcher.java:837) at org....
struts.multipart.saveDir 该属性指定上传文件的临时保存路径,该属性的默认值是javax.servlet.context.tempdir. struts.multipart.maxSize 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数. struts....
增加S2-057 Struts 2.3 to 2.3.34,Struts 2.5 to 2.5.16 此漏洞影响范围非常小,要求配置条件比较苛刻,同时,一些特定版本没有看到有沙盒绕过,说以,目前exp只是基于S2-045改写的,所以exp并不是所有版本都能用,...
org.apache.struts2.dispatcher.multipart Classes to help dispatch multipart HTTP requests. org.apache.struts2.dispatcher.ng This package contains a reimagining of the traditional Struts filter ...
修复S2-045:Struts 2远程执行代码漏洞,时用到的jar,漏洞影响:基于Jakarta Multipart解析器执行文件上传时可能的RCE 影响版本:Struts 2.3.5 - Struts 2.3.31 Struts 2.5 - Struts 2.5.10
<constant name="struts.multipart.saveDir" value="d:\"></constant> <package name="default" extends="struts-default"> class="com.struts2.action.FileUploadAction"> <result name="success">/...
plugin-2.5.10.1.jar,struts2-pell-multipart-plugin-2.5.10.1.jar,struts2-plexus-plugin-2.5.10.1.jar,struts2-portlet-plugin-2.5.10.1.jar,struts2-rest-plugin-2.5.10.1.jar,struts2-sitegraph-plugin-2.5...
struts2-pell-multipart-plugin-2.3.24.jar, struts2-plexus-plugin-2.3.24.jar, struts2-sitegraph-plugin-2.3.24.jar, struts2-sitemesh-plugin-2.3.24.jar, struts2-spring-plugin-2.3.24.jar, struts2-...
* 可以通过配置方式对MultiPartRequest中的内容进行编码设定,请在Struts.xml中配置添加struts.multipart.encoding变量为对应的编码,默认使用GBK * 对于请求流,使用的ISO-8859-1编码方式进行,如果发现请求内容...
微信小程序多文件上传
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 struts2-pell-multipart-plugin-2.2.1.jar
struts2-pell-multipart-plugin-2.1.6.jar
struts.multipart.maxSize默认2M,当maximumSize大于2M时, 必须设置struts.multipart.maxSize的值大于maximumSize。 3.当上传的文件大于struts.multipart.maxSize时,系统报错 当上传的文件在struts.multipart....
struts2-pell-multipart-plugin-2.3.30.jar, struts2-plexus-plugin-2.3.30.jar, struts2-portlet-plugin-2.3.30.jar, struts2-rest-plugin-2.3.30.jar, struts2-sitegraph-plugin-2.3.30.jar, struts2-sitemesh-...
<constant name="struts.multipart.saveDir" value="D:\\upload\\"> <!-- Action所在包定义 --> <package name="C04.4" extends="struts-default"> <!-- Action名字,类以及导航页面定义 --> <...