webwork/src/main/webwork/multipart CosMultiPartRequest.java,NONE,1.1 MultiPartFilter.java,NONE,1.1 MultiPartRequest.java,NONE,1.1 MultiPartRequestWrapper.java,NONE,1.1 PellMultiPartRequest.java,NONE,1.1
[email protected] Sat, 18 May 2002 11:29:19 -0700
| Newsgroups | gmane.comp.java.webwork.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/webwork/webwork/src/main/webwork/multipart In directory usw-pr-cvs1:/tmp/cvs-serv24899 Added Files: CosMultiPartRequest.java MultiPartFilter.java MultiPartRequest.java MultiPartRequestWrapper.java PellMultiPartRequest.java Log Message: new --- NEW FILE: CosMultiPartRequest.java --- /* * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */ package webwork.multipart; import org.apache.log4j.Category; import webwork.config.Configuration; import com.oreilly.servlet.MultipartRequest; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.Enumeration; /* ------------------------------------------------------------ */ /** * Multipart Form Data request adapter for Jason Hunter's multipart * utils. You need to watch his license. He requires you to own his * book. * * @version $Id: CosMultiPartRequest.java,v 1.1 2002/05/18 18:29:17 baldree Exp $ * @author Matt Baldree ([email protected]) modified for WW's use */ public class CosMultiPartRequest extends MultiPartRequest { /* ------------------------------------------------------------ */ private MultipartRequest multi; /** * @param maxSize maximum size post allowed * @param saveDir the directory to save off the file * @param servletRequest the request containing the multipart */ public CosMultiPartRequest(HttpServletRequest servletRequest, String saveDir, int maxSize) throws IOException { multi = new MultipartRequest(servletRequest, saveDir, maxSize); } public Enumeration getParameterNames() { return multi.getParameterNames(); } public String getParameter(String name) { return multi.getParameter(name); } public String[] getParameterValues(String name) { return multi.getParameterValues(name); } // Methods only in MultipartRequest public Enumeration getFileNames() { return multi.getFileNames(); } public String getFilesystemName(String name) { return multi.getFilesystemName(name); } public String getContentType(String name) { return multi.getContentType(name); } public File getFile(String name) { return multi.getFile(name); } } --- NEW FILE: MultiPartFilter.java --- /** * @(#)$Id: MultiPartFilter.java,v 1.1 2002/05/18 18:29:17 baldree Exp $ * * Copyright (c) 2002 * Sprint PCS * All Rights Reserved. * * This document contains proprietary and confidential information, * and shall not be reproduced, transferred, or disclosed to others, * without the prior written consent of Sprint PCS. */ package webwork.multipart; import org.apache.log4j.Category; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.File; import webwork.action.Action; import webwork.action.ResultException; /** * <code>MultiPartFilter</code> * * @author Matt Baldree * @date $Date: 2002/05/18 18:29:17 $ * @version $Revision: 1.1 $ */ public class MultiPartFilter implements Filter { private FilterConfig config; private String saveDir; private Integer maxSize; private static Category log = Category.getInstance(MultiPartFilter.class); public void destroy() { config = null; saveDir = null; maxSize = null; } /** * Retrieve the init parameters from web.xml */ public void init(FilterConfig config) throws ServletException { this.config = config; //saveDir saveDir = config.getInitParameter("saveDir"); if (saveDir == null) { File tempdir = (File) config.getServletContext().getAttribute("javax.servlet.context.tempdir"); if (tempdir != null) { saveDir = tempdir.toString(); } else { throw new ServletException( "MultipartFilter: No upload directory found: set an saveDir " + "init parameter or ensure the javax.servlet.context.tempdir " + "directory is valid"); } } //maxSize String maxSizeStr = config.getInitParameter("maxSize"); if (maxSizeStr!=null) { try { maxSize = new Integer(maxSizeStr); } catch (NumberFormatException e) { throw new ServletException("MultipartFilter: Unable to parse maximum size for upload."); } } else { maxSize = new Integer(-1); } } /** * Wrap the request if the request is a multipart type. If there is an IOException * caused by the multipart parser, then a ResultException with ERROR as the result * and the IOException message as the message will be store in the request * for later use by the action if it extends ActionSupport. */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (MultiPartRequest.isMultiPart((HttpServletRequest)request)) { MultiPartRequestWrapper wrapper = null; try { wrapper = new MultiPartRequestWrapper((HttpServletRequest)request, saveDir, maxSize); chain.doFilter(wrapper, response); } catch (IOException e) { request.setAttribute("webwork.result.exception", new ResultException(Action.ERROR, e.getLocalizedMessage())); //pass the normal chain on chain.doFilter(request, response); } } else { chain.doFilter(request, response); } } } --- NEW FILE: MultiPartRequest.java --- /* * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */ package webwork.multipart; import org.apache.log4j.Category; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.Enumeration; /* ------------------------------------------------------------ */ /** * Multipart Form Data request. * <p> * This class decodes the multipart/form-data stream sent by * a HTML form that uses a file input item. * * @version $Id: MultiPartRequest.java,v 1.1 2002/05/18 18:29:17 baldree Exp $ * @author Matt Baldree ([email protected]) modified for WW's use */ public abstract class MultiPartRequest { protected static Category log = Category.getInstance(CosMultiPartRequest.class); /** * Is request a multipart request */ public static boolean isMultiPart(HttpServletRequest request) { String content_type = request.getHeader("Content-Type"); return (content_type == null || !content_type.startsWith("multipart/form-data")) ? false : true; } public abstract Enumeration getParameterNames(); public abstract String getParameter(String name); public abstract String[] getParameterValues(String name); // Methods only in MultipartRequest public abstract Enumeration getFileNames(); public abstract String getFilesystemName(String name); public abstract String getContentType(String name); public abstract File getFile(String name); } --- NEW FILE: MultiPartRequestWrapper.java --- /** * @(#)$Id: MultiPartRequestWrapper.java,v 1.1 2002/05/18 18:29:17 baldree Exp $ * * Copyright (c) 2002 * Sprint PCS * All Rights Reserved. * * This document contains proprietary and confidential information, * and shall not be reproduced, transferred, or disclosed to others, * without the prior written consent of Sprint PCS. */ package webwork.multipart; import webwork.config.Configuration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.io.File; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; /** * <code>MultiPartRequestWrapper</code> will parse a multipart request and * provide a wrapper around the request. The parse it uses depends on * the "webwork.multipart.parser" setting. The present choices are * "pell" for Jason Pell and "cos" for Jason Hunter. * * @author Matt Baldree * @date $Date: 2002/05/18 18:29:17 $ * @version $Revision: 1.1 $ */ public class MultiPartRequestWrapper extends HttpServletRequestWrapper { MultiPartRequest multi; public MultiPartRequestWrapper(HttpServletRequest request, String saveDir, Integer maxSize) throws IOException { super(request); String parser = Configuration.getString("webwork.multipart.parser"); if ("cos".equals(parser)) { multi = new CosMultiPartRequest(request, saveDir, maxSize.intValue()); } else if ("pell".equals(parser)) { multi = new PellMultiPartRequest(request, saveDir, maxSize.intValue()); } else { throw new IOException("Not multipart parse specified in webwork.properties."); } } public Enumeration getParameterNames() { return multi.getParameterNames(); } public String getParameter(String name) { return multi.getParameter(name); } public String[] getParameterValues(String name) { return multi.getParameterValues(name); } public Map getParameterMap() { Map map = new HashMap(); Enumeration enum = getParameterNames(); while (enum.hasMoreElements()) { String name = (String) enum.nextElement(); map.put(name, multi.getParameterValues(name)); } return map; } // Methods only in MultipartRequest public Enumeration getFileNames() { return multi.getFileNames(); } public String getFilesystemName(String name) { return multi.getFilesystemName(name); } public String getContentType(String name) { return multi.getContentType(name); } public File getFile(String name) { return multi.getFile(name); } } --- NEW FILE: PellMultiPartRequest.java --- /* * WebWork, Web Application Framework * * Distributable under Apache license. * See terms of license at opensource.org */ package webwork.multipart; import org.apache.log4j.Category; import webwork.config.Configuration; import http.utils.multipartrequest.ServletMultipartRequest; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.Enumeration; import java.util.ArrayList; import java.util.List; /* ------------------------------------------------------------ */ /** * Multipart Form Data request adapter for Jason Pell's multipart utils * * @version $Id: PellMultiPartRequest.java,v 1.1 2002/05/18 18:29:17 baldree Exp $ * @author Matt Baldree ([email protected]) modified for WW's use */ public class PellMultiPartRequest extends MultiPartRequest { /* ------------------------------------------------------------ */ private ServletMultipartRequest multi; /** * @param maxSize maximum size post allowed * @param saveDir the directory to save off the file * @param servletRequest the request containing the multipart */ public PellMultiPartRequest(HttpServletRequest servletRequest, String saveDir, int maxSize) throws IOException { multi = new ServletMultipartRequest(servletRequest, saveDir, maxSize); } public Enumeration getParameterNames() { return multi.getParameterNames(); } public String getParameter(String name) { return multi.getURLParameter(name); } public String[] getParameterValues(String name) { Enumeration enum = multi.getURLParameters(name); if (!enum.hasMoreElements()) { return null; } List values = new ArrayList(); while (enum.hasMoreElements()) { values.add(enum.nextElement()); } return (String[])values.toArray(new String[values.size()]); } // Methods only in MultipartRequest public Enumeration getFileNames() { return multi.getFileParameterNames(); } public String getFilesystemName(String name) { return multi.getFileSystemName(name); } public String getContentType(String name) { return multi.getContentType(name); } public File getFile(String name) { return multi.getFile(name); } } _______________________________________________________________ Hundreds of nodes, one monster rendering program. Now that's a super model! Visit http://clustering.foundries.sf.net/