1

現時点では、ファイルをアップロードした後、作成される 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を使用しています

4

1 に答える 1

0

春を使っていますか?その場合、目的のアップロード ディレクトリで ActionBean を構成できます。アクション Bean に追加するだけです。

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

そして、春の設定を変更して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 と同じディレクトリに置くことは、あまり良い考えではありません。その後、再デプロイするたびにすべてのファイルが失われます。

于 2012-06-26T09:24:29.117 に答える