1

アップロードしたファイルで名前の競合を回避しようとしています(com.oreilly.servlet.MultipartRequestを使用しました)。

この時点で、私のコンストラクターは次のようになります。

MultipartRequest multi = new MultipartRequest(request, uploadPath);

フォームから取得した値(request.getParameterValue( "title");など)でファイルの名前を変更するために、FileRenamePolicyを使用してコンストラクターを実装したいと思います。

次のコンストラクターを使用する必要があると思いますか?しかし、「ポリシー」パラメータを設定する方法がわかりません

 MultipartRequest(javax.servlet.http.HttpServletRequest request,
                  java.lang.String saveDirectory, 
                  int maxPostSize, 
                  java.lang.String encoding, 
                  FileRenamePolicy policy) 

何か提案はありますか?ありがとう!

4

1 に答える 1

2

リクエストと一緒に送信されたものを追加するカスタム FileRenamePolicyを実装する必要があります。Filetitle

これがあなたが探しているものです:

 private static class MyTitleRenamePolicy extends FileRenamePolicy {
      java.io.File rename(java.io.File f) {
       return new File(f.getParentFile(), 
            rename.getName() + "_"+ request.getParameter("title"));
      }
  }

 new MultipartRequest(request, saveDirectory, maxPostSize, encoding, 
                        new MyTitleRenamePolicy(request));
于 2012-06-22T10:17:56.450 に答える