tdraier     2005/10/06 19:13:16 CEST

  Modified files:
    core/src/java/org/jahia/engines/filemanager 
                                                DAVFilemanager_Engine.java 
    core/src/java/org/jahia/engines/importexport 
                                                 ManageImportExport.java 
    core/src/java/org/jahia/params ParamBean.java 
    core/src/java/org/jahia/tools/files FileUpload.java 
    core/src/webapp/jsp/jahia/engines/importexport import.jsp 
  Log:
  cleaned up multipart management, in order to make import engine work again
  
  Revision  Changes    Path
  1.21      +35 -45    
jahia/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.java.diff?r1=1.20&r2=1.21&f=h
  1.17      +1 -7      
jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java.diff?r1=1.16&r2=1.17&f=h
  1.38      +30 -2     jahia/core/src/java/org/jahia/params/ParamBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/params/ParamBean.java.diff?r1=1.37&r2=1.38&f=h
  1.3       +4 -0      jahia/core/src/java/org/jahia/tools/files/FileUpload.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/tools/files/FileUpload.java.diff?r1=1.2&r2=1.3&f=h
  1.11      +0 -0      
jahia/core/src/webapp/jsp/jahia/engines/importexport/import.jsp
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/jsp/jahia/engines/importexport/import.jsp.diff?r1=1.10&r2=1.11&f=h
  
  
  
  Index: DAVFilemanager_Engine.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- DAVFilemanager_Engine.java        5 Oct 2005 15:17:28 -0000       1.20
  +++ DAVFilemanager_Engine.java        6 Oct 2005 17:13:14 -0000       1.21
  @@ -659,53 +659,43 @@
       private boolean uploadFile(DAVFileAccess dav, ProcessingContext 
processingContext) {
           ParamBean paramBean = (ParamBean) processingContext;
           if (ProcessingContext.isMultipartRequest(paramBean.getRequest())) {
  -            try {
  -                String savePath = 
processingContext.settings().getTmpContentDiskPath();
  -                File tmp = new File(savePath);
  -                if (!tmp.exists()) {
  -                    tmp.mkdir();
  -                }
  -                FileUpload fupload = new FileUpload(paramBean.getContext(), 
paramBean.getRequest(),
  -                        savePath, 50485760);
  -
  -                // get files name
  -                Enumeration filesName = fupload.getFileNames();
  -
  -                Vector existingFiles = new Vector();
  -                Vector canOverwrite = new Vector();
  -                while (filesName.hasMoreElements()) {
  -                    String name = (String) filesName.nextElement();
  -                    if (fupload.getFileSystemName(name) == null) {
  -                        continue;
  -                    }
  -                    String filename = 
decodeStrangeBrowserEncoding(fupload.getFileSystemName(name));
  -                    filename = 
JahiaWebdavBaseService.getInstance().cleanTitle(filename);
  -                    if (Jahia.getSettings().isTransformFilenames()) {
  -                        filename = DAVFileAccess.cleanName(filename);
  -                    }
  -                    DAVFileAccess old = 
JahiaWebdavBaseService.getInstance().getDAVFileAccess(
  -                            paramBean, processingContext.getSite(), 
processingContext.getUser(), dav.getPath() + "/" + filename);
  -                    if (old.isValid()) {
  -                        existingFiles.add(name);
  -                        if (old.hasPermission(DAVFileAccess.WRITE) && 
old.isWriteable()) {
  -                            canOverwrite.add(name);
  -                        }
  -                    } else {
  -                        doUpload(fupload, name, paramBean, filename, dav);
  -                    }
  +            FileUpload fupload = paramBean.getFileUpload();
  +
  +            // get files name
  +            Enumeration filesName = fupload.getFileNames();
  +
  +            Vector existingFiles = new Vector();
  +            Vector canOverwrite = new Vector();
  +            while (filesName.hasMoreElements()) {
  +                String name = (String) filesName.nextElement();
  +                if (fupload.getFileSystemName(name) == null) {
  +                    continue;
                   }
  -                if (!existingFiles.isEmpty()) {
  -                    
processingContext.getSessionState().setAttribute("lastFupload", fupload);
  -                    processingContext.getSessionState().setAttribute(
  -                            "lastFuploadExistingFiles",
  -                            existingFiles);
  -                    processingContext.getSessionState().setAttribute(
  -                            "lastFuploadCanOverwrite",
  -                            canOverwrite);
  -                    processingContext.setParameter("screen", 
"fileUploadConfirm");
  +                String filename = 
decodeStrangeBrowserEncoding(fupload.getFileSystemName(name));
  +                filename = 
JahiaWebdavBaseService.getInstance().cleanTitle(filename);
  +                if (Jahia.getSettings().isTransformFilenames()) {
  +                    filename = DAVFileAccess.cleanName(filename);
  +                }
  +                DAVFileAccess old = 
JahiaWebdavBaseService.getInstance().getDAVFileAccess(
  +                        paramBean, processingContext.getSite(), 
processingContext.getUser(), dav.getPath() + "/" + filename);
  +                if (old.isValid()) {
  +                    existingFiles.add(name);
  +                    if (old.hasPermission(DAVFileAccess.WRITE) && 
old.isWriteable()) {
  +                        canOverwrite.add(name);
  +                    }
  +                } else {
  +                    doUpload(fupload, name, paramBean, filename, dav);
                   }
  -            } catch (IOException e) {
  -                return false;
  +            }
  +            if (!existingFiles.isEmpty()) {
  +                
processingContext.getSessionState().setAttribute("lastFupload", fupload);
  +                processingContext.getSessionState().setAttribute(
  +                        "lastFuploadExistingFiles",
  +                        existingFiles);
  +                processingContext.getSessionState().setAttribute(
  +                        "lastFuploadCanOverwrite",
  +                        canOverwrite);
  +                processingContext.setParameter("screen", 
"fileUploadConfirm");
               }
           }
           processingContext.getSessionState().setAttribute(
  
  
  
  Index: ManageImportExport.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- ManageImportExport.java   29 Sep 2005 15:01:56 -0000      1.16
  +++ ManageImportExport.java   6 Oct 2005 17:13:15 -0000       1.17
  @@ -154,13 +154,7 @@
       private void importFile(ContentObject target, boolean diff, 
ProcessingContext jParams) {
           if (ProcessingContext.isMultipartRequest 
(((ParamBean)jParams).getRequest ())) {
               try {
  -                String savePath = jParams.settings 
().getTmpContentDiskPath();
  -                File tmp = new File (savePath);
  -                if (!tmp.exists ()) {
  -                    tmp.mkdir ();
  -                }
  -                FileUpload fupload = new FileUpload 
(((ParamBean)jParams).getContext (), ((ParamBean)jParams).getRequest (),
  -                        savePath, Integer.MAX_VALUE);
  +                FileUpload fupload = ((ParamBean)jParams).getFileUpload();
   
                   // get files name
                   Enumeration filesName = fupload.getFileNames ();
  
  
  
  Index: ParamBean.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/params/ParamBean.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ParamBean.java    3 Oct 2005 10:45:42 -0000       1.37
  +++ ParamBean.java    6 Oct 2005 17:13:15 -0000       1.38
  @@ -122,6 +122,7 @@
   import org.jahia.settings.SettingsBean;
   import org.jahia.utils.JahiaTools;
   import org.jahia.utils.LanguageCodeConverters;
  +import org.jahia.tools.files.FileUpload;
   
   import javax.servlet.ServletContext;
   import javax.servlet.http.HttpServletRequest;
  @@ -223,6 +224,8 @@
       private ServletIncludeResponseWrapper mResponse = null;
       private ServletContext context;
   
  +    private FileUpload fupload;
  +
       /**
        * Constructor needed by SerializableParamBean
        */
  @@ -268,6 +271,8 @@
           throws JahiaPageNotFoundException, JahiaSessionExpirationException,
           JahiaSiteNotFoundException, JahiaException {
   
  +        this.context = context;
  +
           copyRequestData(request);
   
           // default vars
  @@ -280,7 +285,6 @@
   
           // mResponse           = new ServletIncludeResponseWrapper(response);
   
  -        this.context = context;
           this.startTime = startTime;
           this.httpMethod = httpMethod;
   
  @@ -355,6 +359,8 @@
   
               Jahia.setThreadParamBean(this);
   
  +            this.context = context;
  +
               copyRequestData(request);
   
               // default vars
  @@ -365,7 +371,6 @@
               mRealRequest = request;
               mRealResponse = response;
               // mResponse           = new 
ServletIncludeResponseWrapper(response);
  -            this.context = context;
               this.startTime = startTime;
               this.httpMethod = httpMethod;
   
  @@ -3433,6 +3438,25 @@
               return;
           }
   
  +        if (isMultipartRequest(request)) {
  +            String savePath = settings().getTmpContentDiskPath();
  +            File tmp = new File(savePath);
  +            if (!tmp.exists()) {
  +                tmp.mkdir();
  +            }
  +
  +            try {
  +                fupload = new FileUpload (context, request, savePath, 
Integer.MAX_VALUE);
  +                Enumeration en = fupload.getParameterNames();
  +                while (en.hasMoreElements()) {
  +                    String name = (String) en.nextElement();
  +                    getCustomParameters().put(name, 
fupload.getParameterValues(name));
  +                }
  +            } catch (IOException e) {
  +                logger.error("Cannot parse multipart data !",e);
  +            }
  +        }
  +
           // first let's copy all the parameters from the request object
           getCustomParameters().putAll(request.getParameterMap());
   
  @@ -3478,4 +3502,8 @@
           return getRequest().getAttributeNames();
       }
   
  +    public FileUpload getFileUpload() {
  +        return fupload;
  +    }
  +
   } // end ParamBean
  
  
  
  Index: FileUpload.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/tools/files/FileUpload.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FileUpload.java   5 Oct 2005 15:17:29 -0000       1.2
  +++ FileUpload.java   6 Oct 2005 17:13:15 -0000       1.3
  @@ -297,6 +297,10 @@
           m_QueryStringParams = new Hashtable();
           logger.debug(m_Req.getQueryString());
   
  +        if (m_Req.getQueryString() == null) {
  +            return;
  +        }
  +
           StringTokenizer tokenizer = new 
StringTokenizer(m_Req.getQueryString(),
               "&");
           Vector params = new Vector();
  
  
  
  

Reply via email to