Search code examples
servletsrequestmultipart

MultiPart Request RenameFilePolicy


I am trying to avoid some naming conflicts in my uploaded files (I used com.oreilly.servlet.MultipartRequest ).

At this moment my constructor looks like this:

MultipartRequest multi = new MultipartRequest(request, uploadPath);

I would like to implement the constructor with FileRenamePolicy in order to rename my file with a value taken from a form (something like request.getParameterValue("title");

I think I should use the foloowing constructor? But I don't know how to set the "policy" paramter

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

Do you have any suggestions? Thanks!


Solution

  • You should implement a custom FileRenamePolicy which gives you the File appending the title sent along with the request.

    Here is what you are looking for:

     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));