11.12. Limiting the Size of Uploaded Files
Problem
You want to limit the size of a file to be uploaded to your application.
Solution
In the struts-config.xml file, set the
maxFileSize attribute on the
controller element to the maximum accepted size
(in bytes) for an uploaded file. In this example, a single uploaded
file must be smaller than 700 KB:
<controller maxFileSize="700K"/>
Discussion
Whether intended or not, users may attempt to upload excessively
large files to your web application. In most cases, the user
accidentally picked the wrong file; however, a malicious user could
be attempting to bring down your application. You can restrict
uploads to a maximum file size using the
maxFileSize attribute on the
controller element in your
struts-config.xml file. The value for this
attribute is expressed as an integer value optionally followed by a
"K,"
"M," or
"G," interpreted as kilobytes,
megabytes or gigabytes, respectively. If you specify the integer
valuewith no units indicated, the value will be interpreted as bytes.
If you attempt to upload a file larger than the acceptable maximum,
the FormFile property of the
ActionForm will be null. You
can handle this condition in your Action that
processes the upload, as shown in Example 11-25.
Example 11-25. Handling null FormFile property (partial)
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Get the form file property from the form UploadForm ...