目前,在上传文件后,创建的tmp文件将存储在:
中\ Apache Software Foundation \ Apache Tomcat 7.0.22 \工作\卡塔利娜\本地主机\项目\ upload__78a0adab_1380z353bfa__7gfe_00000000.tmp
如何将其存储在我自己的自定义目录中?我试过了:
<param name="saveDir">/tmp</param>
但它仍然是我上面提到的那个。
编辑1 - struts.xml:
<action name="file_save" method="fileSave" class="FileActionBean">
<interceptor-ref name="fileUpload">
<param name="maximumSize">2097152</param>
<param name="saveDir">/tmp</param>
<param name="allowedTypes">
image/bmp,image/gif,image/jpeg,image/jpg,image/png
</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result type="redirect">file</result>
</action>
编辑2:
我正在使用struts 2版本2.1.8.1
答案 0 :(得分:0)
你在使用Spring吗? 在这种情况下,您可以使用所需的upload-directory配置ActionBean。 只需添加到您的action-bean:
private String uploadDir;
public void setUploadDir(String uploadDir){
this.uploadDir = uploadDir;
}
修改spring config applicationContext.xml
以设置uploadDir。您可以通过直接设置值,或者更优选地通过configfile设置,如下所示:
<bean id="fileAction" class="FileActionBean" scope="prototype">
<property name="uploadDir" value="${uploaddir}" />
</bean>
更新
可以很容易地控制要保存文件的位置。
如果路径字符串的第一个字符不是/,则它将相对于“当前”目录。
因此,如果要将其保存在webapp目录中,则不需要任何“根”路径。简单地说:File file = new File("results.txt");
或者,如果您想将其存储在当前目录以外的其他位置,您可以使用../../something
进行导航,也可以只输入整个结构到您想要的位置:File file = new File("/home/something/something/myFile.txt");
或者在Windows环境中,您可以尝试File file = new File("Z:\\results\\results.txt");
但将上传的文件放在与webapp相同的目录中并不是一个好主意。然后,每次重新部署时都会丢失所有文件。