/*
* $Id: UploadForm.java 471754 2006-11-06 14:55:09Z husted $
*
* 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.struts.webapp.upload;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import org.apache.struts.upload.MultipartRequestHandler;
import org.apache.struts.validator.ValidatorForm;
/**
* This class is a placeholder for form values. In a multipart request, files are represented by
* set and get methods that use the class org.apache.struts.upload.FormFile, an interface with
* basic methods to retrieve file information. The actual structure of the FormFile is dependant
* on the underlying impelementation of multipart request handling. The default implementation
* that struts uses is org.apache.struts.upload.CommonsMultipartRequestHandler.
*
* @version $Rev: 471754 $ $Date: 2006-11-06 15:55:09 +0100 (Mon, 06 Nov 2006) $
*/
public class UploadForm extends ValidatorForm {
/**
* The value of the text the user has sent as form data
*/
protected String theText;
/**
* The value of the embedded query string parameter
*/
protected String queryParam;
/**
* Whether or not to write to a file
*/
protected boolean writeFile;
/**
* The file that the user has uploaded
*/
protected FormFile theFile;
/**
* The file path to write to
*/
protected String filePath;
/**
* Retrieve the value of the text the user has sent as form data
*/
public String getTheText() {
return theText;
}
/**
* Set the value of the form data text
*/
public void setTheText(String theText) {
this.theText = theText;
}
/**
* Retrieve the value of the query string parameter
*/
public String getQueryParam() {
return queryParam;
}
/**
* Set the value of the query string parameter
*/
public void setQueryParam(String queryParam) {
this.queryParam = queryParam;
}
/**
* Retrieve a representation of the file the user has uploaded
*/
public FormFile getTheFile() {
return theFile;
}
/**
* Set a representation of the file the user has uploaded
*/
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
/**
* Set whether or not to write to a file
*/
public void setWriteFile(boolean writeFile) {
this.writeFile = writeFile;
}
/**
* Get whether or not to write to a file
*/
public boolean getWriteFile() {
return writeFile;
}
/**
* Set the path to write a file to
*/
public void setFilePath(String filePath) {
this.filePath = filePath;
}
/**
* Get the path to write a file to
*/
public String getFilePath() {
return filePath;
}
public void reset() {
writeFile = false;
}
/**
* Check to make sure the client hasn't exceeded the maximum allowed upload size inside of this
* validate method.
*/
public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = super.validate(mapping, request);
//has the maximum length been exceeded?
Boolean maxLengthExceeded =
(Boolean) request.getAttribute(
MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue())) {
if (errors == null) {
errors = new ActionErrors();
}
errors.add(
ActionMessages.GLOBAL_MESSAGE ,
new ActionMessage("maxLengthExceeded"));
errors.add(
ActionMessages.GLOBAL_MESSAGE ,
new ActionMessage("maxLengthExplanation"));
}
return errors;
}
}