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"/>
3、如果設置了struts.multipart.saveDir但是value中並沒有"/",就像這樣:
- <constant name="struts.multipart.saveDir" value="repository"/>
4、乾脆使用絕對路徑,這樣就不會有任何問題了,哈哈!