java - 如何配置 Struts 2 上传文件夹?

标签 java tomcat upload struts2

目前,上传文件后,创建的 tmp 文件存储在:

\Apache Software Foundation\Apache Tomcat 7.0.22\work\Catalina\localhost\Project\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

最佳答案

你在使用 Spring 吗? 在这种情况下,您可以使用所需的上传目录配置 ActionBean。 只需添加到您的操作 bean 中:

private String uploadDir;
public void setUploadDir(String uploadDir){
    this.uploadDir = uploadDir;
}

并修改您的 spring 配置 applicationContext.xml 以设置 uploadDir。您可以通过直接设置值来实现它,或者更优选地,通过如下所示的配置文件:

<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 放在同一个目录中并不是一个好主意。那么每次重新部署时,您都会丢失所有文件。

关于java - 如何配置 Struts 2 上传文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121604/

相关文章:

java - map 旋转90度?

apache - 在多个 URL 上使用相同的 tomcat 实例

c# - 在网络服务器和本地主机上保存和访问文件

node.js - vue express 上传多个文件到amazon s3

iphone - 如何在 ios 中将图像上传到 .ashx url

java - 使用 Azure SDK for Java 调用 Azure Migrate Rest Api

java - 即使场景中 VBox 的宽度大于 0,它的宽度仍然为 0

Java:对依赖类的两个不同版本使用相同的代码

eclipse - 中文开发者通知 : run tomcat 7. 0 使用eclipse juno抛出异常

Apache 虚拟主机不适用于子域