From ad9da0be9503d9d24da51c1761b2d1ce08283d28 Mon Sep 17 00:00:00 2001 From: hns Date: Mon, 30 Jan 2006 16:16:34 +0000 Subject: [PATCH] * Upgrade to commons-fileupload 1.1 * Move check for multipart content inside try statement --- src/helma/servlet/AbstractServletClient.java | 48 ++++++++++---------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/helma/servlet/AbstractServletClient.java b/src/helma/servlet/AbstractServletClient.java index c2ac652e..bfaaac66 100644 --- a/src/helma/servlet/AbstractServletClient.java +++ b/src/helma/servlet/AbstractServletClient.java @@ -27,10 +27,11 @@ import java.util.*; import javax.servlet.*; import javax.servlet.http.*; -import org.apache.commons.fileupload.FileUpload; import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.DiskFileUpload; import org.apache.commons.fileupload.FileUploadBase; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.fileupload.servlet.ServletRequestContext; /** * This is an abstract Hop servlet adapter. This class communicates with hop applications @@ -162,10 +163,11 @@ public abstract class AbstractServletClient extends HttpServlet { } } - if (FileUpload.isMultipartContent(request)) { - // File Upload - try { - DiskFileUpload upload = new DiskFileUpload(); + try { + ServletRequestContext reqcx = new ServletRequestContext(request); + if (ServletFileUpload.isMultipartContent(reqcx)) { + // File Upload + ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); upload.setSizeMax(uploadLimit * 1024); upload.setHeaderEncoding(encoding); @@ -194,23 +196,23 @@ public abstract class AbstractServletClient extends HttpServlet { } } - } catch (Exception upx) { - System.err.println("Error in file upload: " + upx); - if (uploadSoftfail) { - String msg = upx.getMessage(); - if (msg == null || msg.length() == 0) { - msg = upx.toString(); - } - reqtrans.set("helma_upload_error", msg); - } else if (upx instanceof FileUploadBase.SizeLimitExceededException) { - sendError(response, HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE, - "File upload size exceeds limit of " + uploadLimit + "kB"); - return; - } else { - sendError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error in file upload: " + upx); - return; + } + } catch (Exception upx) { + System.err.println("Error in file upload: " + upx); + if (uploadSoftfail) { + String msg = upx.getMessage(); + if (msg == null || msg.length() == 0) { + msg = upx.toString(); } + reqtrans.set("helma_upload_error", msg); + } else if (upx instanceof FileUploadBase.SizeLimitExceededException) { + sendError(response, HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE, + "File upload size exceeds limit of " + uploadLimit + "kB"); + return; + } else { + sendError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + "Error in file upload: " + upx); + return; } } @@ -816,7 +818,7 @@ public abstract class AbstractServletClient extends HttpServlet { pathbuffer.append(UrlEncoded.decode(token, encoding)); } - + // append trailing "/" if it is contained in original URI if (uri.endsWith("/")) pathbuffer.append('/');