org.apache.wicket.util.upload.ServletFileUpload Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.ops4j.pax.wicket.service Show documentation
Show all versions of org.ops4j.pax.wicket.service Show documentation
Pax Wicket Service is an OSGi extension of the Wicket framework, allowing for dynamic loading and
unloading of Wicket components and pageSources.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wicket.util.upload;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
/**
*
* High level API for processing file uploads.
*
*
*
* This class handles multiple files per single HTML widget, sent using multipart/mixed
* encoding type, as specified by RFC 1867. Use
* {@link #parseRequest(HttpServletRequest)} to acquire a list of
* {@link org.apache.wicket.util.upload.FileItem}s associated with a given HTML widget.
*
*
*
* How the data for individual parts is stored is determined by the factory used to create them; a
* given part may be in memory, on disk, or somewhere else.
*
*
* @author Rafal Krzewski
* @author Daniel Rall
* @author Jason van Zyl
* @author John McNally
* @author Martin Cooper
* @author Sean C. Sullivan
*/
public class ServletFileUpload extends FileUpload
{
// ---------------------------------------------------------- Class methods
/**
* Utility method that determines whether the request contains multipart content.
*
* @param request
* The servlet request to be evaluated. Must be non-null.
*
* @return true
if the request is multipart; false
otherwise.
*/
public static final boolean isMultipartContent(HttpServletRequest request)
{
if (!"post".equals(request.getMethod().toLowerCase()))
{
return false;
}
String contentType = request.getContentType();
if (contentType == null)
{
return false;
}
if (contentType.toLowerCase().startsWith(MULTIPART))
{
return true;
}
return false;
}
// ----------------------------------------------------------- Constructors
/**
* Constructs an uninitialised instance of this class. A factory must be configured, using
* setFileItemFactory()
, before attempting to parse requests.
*
* @see FileUpload#FileUpload(FileItemFactory)
*/
public ServletFileUpload()
{
super();
}
/**
* Constructs an instance of this class which uses the supplied factory to create
* FileItem
instances.
*
* @see FileUpload#FileUpload()
* @param fileItemFactory
* The factory to use for creating file items.
*/
public ServletFileUpload(FileItemFactory fileItemFactory)
{
super(fileItemFactory);
}
// --------------------------------------------------------- Public methods
/**
* Processes an RFC 1867 compliant
* multipart/form-data
stream.
*
* @param request
* The servlet request to be parsed.
*
* @return A list of FileItem
instances parsed from the request, in the order that
* they were transmitted.
*
* @throws FileUploadException
* if there are problems reading/parsing the request or storing files.
*/
@Override
public List parseRequest(HttpServletRequest request) throws FileUploadException
{
return parseRequest(new ServletRequestContext(request));
}
/**
* Processes an RFC 1867 compliant
* multipart/form-data
stream.
*
* @param request
* The servlet request to be parsed.
*
* @return An iterator to instances of FileItemStream
parsed from the request, in
* the order that they were transmitted.
*
* @throws FileUploadException
* if there are problems reading/parsing the request or storing files.
* @throws IOException
* An I/O error occurred. This may be a network error while communicating with the
* client or a problem while storing the uploaded content.
*/
public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException,
IOException
{
return super.getItemIterator(new ServletRequestContext(request));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy