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