1

ファイルを正常にアップロードできますが、ファイルはサーバー上の展開されたディレクトリに保存されます。

プロジェクトを削除してプロジェクトをTomcatサーバー7.0に再デプロイするとすぐに、アップロードしたすべてのファイルがそこから削除されます。

Tomcat サーバー 7.0 でサーバー側のテクノロジとして JSF を使用しています。in eclipse 井出

4

2 に答える 2

2

アップロードされたファイルを展開フォルダーに保存しないでください。また、他の人が提案したようにフォルダーにも保存しないくださいWEB-INF。Web アプリケーションを再デプロイするときにそれらが失われるのは、それらが元の WAR ファイルに含まれていないためです。

アップロードされたファイルは、デプロイ フォルダー外の固定パスに保存する必要があります。たとえば/var/webapp/uploads<Context>Tomcatに新しい を追加することで、いつでもフォルダーを Web で使用できるようにすることができます。

以下も参照してください。

于 2012-05-24T13:20:13.907 に答える
0

ファイルを /WEB-INF フォルダーまたはハード ドライブの任意の場所に保存します (もちろん展開ディレクトリを除く)。

このコードを使用しました(各ユーザーのファイルを独自のフォルダーに保存します)

String path = Util.getPathToFiles() + "WEB-INF" + File.separator + "upload";
    try {
        path += File.separator + session.getCurrentUser().getLogin();
        if (!isFolderExists(path)) {
            new File(path).mkdir();
        }
        path += File.separator + file.getName();
        FileUtils.copyFile(file, new File(path));
    } catch (IOException ex) {
        Logger.getLogger(ThesisBean.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        file.delete();
    }

getPathToFilesServletContext から realPath を返すだけで、FileUtils は Apache IO のクラスです (ただし、ファイル コピーのコードを自分で記述できます。これは単なるヘルパー クラスです)。

于 2012-05-24T06:54:37.683 に答える