Apache Struts 2 Plugin Registry > Home > Advanced Fileupload Plugin
Added by Wes Wannemacher, last edited by Wes Wannemacher on Jul 13, 2009  (view change)
Name Advanced Fileupload Plugin
Publisher Apache Software Foundation
License Open Source (ASL2)
Version 1.0-SNAPSHOT
Homepage http://cwiki.apache.org/S2PLUGINS/Advanced+Fileupload+Plugin

Rating?

The Advanced File Upload Plugin is meant to provide added functionality to the previous Multipart Request handling within Struts 2. Prior to this plugin, Struts 2 utilized the Commons Fileupload but did not expose much of it's functionality. This plugin uses the same backend, but allows users to override beans and constants to make changes to the behavior of Commons Fileupload.

Introduction

The Advanced File Upload Plugin provides the following features:

  • Exposes a special action that can be asynchronously requested to view the status of uploads
  • Ability to set a threshold for the amount of memory consumed by Commons Fileupload's DiskItemFactory before writing data to disk

Usage

To use the plugin, simply install the jar file to your WEB-INF/lib.

Advanced

Since this plugin is a wrapper around the Commons Fileupload library, advanced usage requires knowledge of Commons Fileupload. Following is a list of the constants that can be overridden -

constant explanation default value
struts.fileuploadplugin.sizethreshold Sets a threshold for the size of a file. If a file exceeds this threshold, it will be written to disk. Uploads consuming less than this threshold will only be stored in memory and never written to disk (unless you write it). 256
struts.fileuploadplugin.repositorypath Directory where the plugin will write files to disk while processing the request. This is not permanent storage, files will be written temporarily here if they exceed the threshold. /tmp
struts.fileuploadplugin.listenerupdatefrequency This is the number of bytes to wait before calling the ProgressListener. The ProgressListener will be called frequently during the processing of the request. This allows you to throttle the frequency that it is called. 2048
struts.fileuploadplugin.isportletupload Specifies whether the upload is happening within a Portlet. false
struts.fileuploadplugin.timetokeepstatus Currently, the status of uploads is stored in memory and tied to a user's session. This is a timeout setting instructing the app server to remove the status if it has not been written to or read from in the amount of time specified. Specify the number of seconds to hold onto the status in memory. 600
struts.multipart.handler Simply specifies to struts2-core that the advanced file upload be used, rather than the built-in functionality. upload-plugin

Example

Resources

Version History

Version Date Author Notes
1.0 TBA (pending feedback) Wes Wannemacher Initial release