diff --git a/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java b/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java
index 42c51b94f6..3573ffa463 100644
--- a/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java
+++ b/source/java/org/alfresco/web/app/servlet/UploadFileServlet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
+ * Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -14,7 +14,8 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see . */
+ * along with Alfresco. If not, see .
+ */
package org.alfresco.web.app.servlet;
import java.io.File;
@@ -45,6 +46,8 @@ import org.apache.commons.fileupload.servlet.ServletRequestContext;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.json.JSONException;
+import org.json.JSONObject;
import org.springframework.extensions.config.ConfigService;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -177,25 +180,36 @@ public class UploadFileServlet extends BaseServlet
throw new AlfrescoRuntimeException("return-page parameter has not been supplied");
}
- if (returnPage.startsWith("javascript:"))
+ JSONObject json;
+ try
{
- returnPage = returnPage.substring("javascript:".length());
- // finally redirect
- if (logger.isDebugEnabled())
- {
- logger.debug("Sending back javascript response " + returnPage);
- }
- response.setContentType(MimetypeMap.MIMETYPE_HTML);
- response.setCharacterEncoding("utf-8");
- // work-around for WebKit protection against embedded javascript on POST body response
- response.setHeader("X-XSS-Protection", "0");
- final PrintWriter out = response.getWriter();
- out.println("
");
- out.close();
+ json = new JSONObject(returnPage);
+
+ if (json.has("id") && json.has("args"))
+ {
+ // finally redirect
+ if (logger.isDebugEnabled())
+ {
+ logger.debug("Sending back javascript response " + returnPage);
+ }
+ response.setContentType(MimetypeMap.MIMETYPE_HTML);
+ response.setCharacterEncoding("utf-8");
+ // work-around for WebKit protection against embedded javascript on POST body response
+ response.setHeader("X-XSS-Protection", "0");
+ final PrintWriter out = response.getWriter();
+ out.println("");
+ out.close();
+ }
}
- else
+ catch (JSONException e)
{
// finally redirect
if (logger.isDebugEnabled())
diff --git a/source/web/scripts/upload_helper.js b/source/web/scripts/upload_helper.js
index bdd2577cf7..9e37a83534 100644
--- a/source/web/scripts/upload_helper.js
+++ b/source/web/scripts/upload_helper.js
@@ -65,8 +65,7 @@ function handle_upload_helper(fileInputElement,
w.upload_complete_helper = window.upload_complete_helper;
}
- rp.value = "javascript:window.parent.upload_complete_helper('" + uploadId +
- "',{error: '${_UPLOAD_ERROR}', fileTypeImage: '${_FILE_TYPE_IMAGE}'})";
+ rp.value = "{id: '" + uploadId + "', args: {error: '${_UPLOAD_ERROR}', fileTypeImage: '${_FILE_TYPE_IMAGE}'}}";
form.submit();
}