View Javadoc
1 package org.apache.turbine.services.upload; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 import javax.servlet.http.HttpServletRequest; 58 import org.apache.turbine.services.TurbineBaseService; 59 import org.apache.turbine.services.servlet.TurbineServlet; 60 import org.apache.turbine.util.ParameterParser; 61 import org.apache.turbine.util.TurbineException; 62 63 /*** 64 * <p> This class is a base implementation of 65 * {@link org.apache.turbine.services.upload.UploadService}. 66 * 67 * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a> 68 * @author <a href="mailto:dlr@collab.net">Daniel Rall</a> 69 * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a> 70 * @version $Id: BaseUploadService.java,v 1.1.1.1 2001/08/16 05:09:23 jvanzyl Exp $ 71 */ 72 public abstract class BaseUploadService 73 extends TurbineBaseService 74 implements UploadService 75 { 76 /*** 77 * A maximum lenght of a single header line that will be 78 * parsed. (1024 bytes). 79 */ 80 public static final int MAX_HEADER_SIZE = 1024; 81 82 /*** 83 * Initializes the service. 84 * 85 * This method processes the repository path, to make it relative to the 86 * web application root, if neccessary 87 */ 88 public void init() 89 { 90 String path = getProperties() 91 .getProperty(UploadService.REPOSITORY_KEY, 92 UploadService.REPOSITORY_DEFAULT.toString()); 93 if(!path.startsWith("/")) 94 { 95 String realPath = TurbineServlet.getRealPath(path); 96 if(realPath != null) 97 { 98 path = realPath; 99 } 100 } 101 getProperties().setProperty(UploadService.REPOSITORY_KEY, path); 102 setInit(true); 103 } 104 105 /*** 106 * <p> Processes an <a href="http://rf.cx/rfc1867.html">RFC 107 * 1867</a> compliant <code>multipart/form-data</code> stream. 108 * 109 * @param req The servlet request to be parsed. 110 * @param params The ParameterParser instance to insert form 111 * fields into. 112 * @param path The location where the files should be stored. 113 * @exception TurbineException If there are problems reading/parsing 114 * the request or storing files. 115 */ 116 public abstract void parseRequest( HttpServletRequest req, 117 ParameterParser params, 118 String path ) 119 throws TurbineException; 120 121 /*** 122 * <p> Retrieves the value of <code>size.max</code> property of the 123 * {@link org.apache.turbine.services.upload.UploadService}. 124 * 125 * @return The maximum upload size. 126 */ 127 public int getSizeMax() 128 { 129 String sizeMax = getProperties() 130 .getProperty(UploadService.SIZE_MAX_KEY, 131 UploadService.SIZE_MAX_DEFAULT.toString()); 132 try 133 { 134 return Integer.parseInt(sizeMax); 135 } 136 catch(NumberFormatException e) 137 { 138 return UploadService.SIZE_MAX_DEFAULT.intValue(); 139 } 140 } 141 142 /*** 143 * <p> Retrieves the value of <code>size.threshold</code> property of 144 * {@link org.apache.turbine.services.upload.UploadService}. 145 * 146 * @return The threshold beyond which files are written directly to disk. 147 */ 148 public int getSizeThreshold() 149 { 150 String sizeThreshold = getProperties() 151 .getProperty(UploadService.SIZE_THRESHOLD_KEY, 152 UploadService.SIZE_THRESHOLD_DEFAULT.toString()); 153 try 154 { 155 return Integer.parseInt(sizeThreshold); 156 } 157 catch(NumberFormatException e) 158 { 159 return UploadService.SIZE_THRESHOLD_DEFAULT.intValue(); 160 } 161 } 162 163 /*** 164 * <p> Retrieves the value of the <code>repository</code> property of 165 * {@link org.apache.turbine.services.upload.UploadService}. 166 * 167 * @return The repository. 168 */ 169 public String getRepository() 170 { 171 return getProperties() 172 .getProperty(UploadService.REPOSITORY_KEY, 173 UploadService.REPOSITORY_DEFAULT.toString()); 174 } 175 }

This page was automatically generated by Maven